home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / INFO / INTER39B.ZIP / INTERRUP.E < prev    next >
Text File  |  1994-02-06  |  288KB  |  7,740 lines

  1. Interrupt List, part 5 of 10
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  3. --------D-2180-------------------------------
  4. INT 21 - European MS-DOS 4.0 - "AEXEC" - EXECUTE PROGRAM IN BACKGROUND
  5.     AH = 80h
  6.     CX = mode
  7.         0000h place child in zombie mode on exit to preserve exit code
  8.         0001h discard child process and exit code on termination
  9.     DS:DX -> ASCIZ full program name
  10.     ES:BX -> parameter block (as for AX=4B00h)
  11. Return: CF clear if successful
  12.         AX = Command Subgroup ID (CSID)
  13.     CF set on error
  14.         AX = error code (see AH=59h)
  15. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  16.       by several other European OEMs; its release falls between mainstream
  17.       versions 3.2 and 3.3
  18. Desc:    asynchronously execute a program, creating a new process for it
  19. Notes:    this function is called by the DETACH command
  20.     there is a system-wide limit of 32 processes
  21.     the CSID is used to identify all processes that have been spawned by
  22.       a given process, whether directly or indirectly
  23.     programs to be run in the background must use the new executable format
  24.       (see AH=4Bh)
  25.     background processes may only perform asynchronous (background) EXECs,
  26.       either this function or AX=4B04h
  27.     background processes may execute INT 11, INT 12, INT 21, INT 2A, and
  28.       INT 2F at any time; they may execute INT 10 and INT 16 only while
  29.       they have opened a popup screen via INT 2F/AX=1401h; no other
  30.       interrupts may be executed from the background
  31.     background processes may not use drive B: or overlay their code
  32.       segments
  33.     see AX=8700h for an installation check
  34.     the "NE" new executable format made its first appearance in European
  35.       MS-DOS 4.0
  36. SeeAlso: AH=4Bh,AH=87h,INT 2F/AX=1400h"POPUP"
  37. ----------218080-----------------------------
  38. INT 21 - PCW Weather Card interface - UNINSTALL PCW.COM AND FREE MEMORY
  39.     AX = 8080h
  40. Return: ???
  41. SeeAlso: AX=7070h/BX=7070h
  42. --------D-2181-------------------------------
  43. INT 21 - European MS-DOS 4.0 - "FREEZE" - STOP A PROCESS
  44.     AH = 81h
  45.     BX = flag (00h freeze command subtree, 01h only specified process)
  46.     CX = Process ID of head of command subtree
  47. Return: CF clear if successful
  48.     CF set on error
  49.         AX = error code (no such process)
  50. Desc:    temporarily suspend a process or a process and all of its children
  51. Note:    if BX=0001h, this call will not return until the process is actually
  52.       frozen, which may not be until after it unblocks from an I/O
  53.       operation
  54. SeeAlso: AH=82h,AH=89h,AX=8E00h,INT 15/AX=101Dh
  55. --------D-2182-------------------------------
  56. INT 21 - European MS-DOS 4.0 - "RESUME" - RESTART A PROCESS
  57.     AH = 82h
  58.     BX = flag (00h resume command subtree, 01h only specified process)
  59.     CX = Process ID of head of command subtree
  60. Return: CF clear if successful
  61.     CF set on error
  62.         AX = error code (no such process)
  63. Desc:    restart a previously-suspended process or a process and all of its
  64.       children
  65. SeeAlso: AH=81h,INT 15/AX=101Eh
  66. --------D-2183-------------------------------
  67. INT 21 - European MS-DOS 4.0 - "PARTITION" - GET/SET FOREGROUND PARTITION SIZE
  68.     AH = 83h
  69.     AL = function
  70.         00h get size
  71.         01h set new size
  72.         BX = new size in paragraphs
  73. Return: CF clear if successful
  74.         BX = current size (function 00h) or old size (function 01h)
  75.     CF set on error
  76.         AX = error code (01h,07h,0Dh)(see AH=59h)
  77. Desc:    specify or determine how much memory may be allocated by the foreground
  78.       process
  79. Note:    if the partition size is set to 0000h, no partition management is done
  80.       and all memory allocation is compatible with DOS 3.2.
  81.     the partition size can be changed regardless of what use is being made
  82.       of the changed memory; subsequent allocations will follow the
  83.       partition rules (foreground processes may allocate only foreground
  84.       memory; background processes allocate background memory first, then
  85.       foreground memory)
  86. SeeAlso: AH=48h,AH=4Ah
  87. --------v-2183-------------------------------
  88. INT 21 - VIRUS - "SVC" - INSTALLATION CHECK
  89.     AH = 83h
  90. Return: DX = 1990h if resident
  91. SeeAlso: AH=76h,AH=84h"VIRUS"
  92. --------v-2184-------------------------------
  93. INT 21 - VIRUS - "SVC 5.0" or "SVC 6.0" - INSTALLATION CHECK
  94.     AH = 84h
  95. Return: DX = 1990h if resident
  96.         BH = version number (major in high nybble, minor in low)
  97. SeeAlso: AH=83h"VIRUS",AH=89h"VIRUS"
  98. --------D-218400-----------------------------
  99. INT 21 - European MS-DOS 4.0 - "CREATMEM" - CREATE A SHARED MEMORY AREA
  100.     AX = 8400h
  101.     BX = size in bytes (0000h = 65536)
  102.     CX = flags
  103.         bit 6: zero-initialize segment
  104.     DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
  105. Return: CF clear if successful
  106.         AX = segment address of shared memory global object
  107.     CF set on error
  108.         AX = error code (06h,08h) (see AH=59h)
  109. Desc:    create an area of memory which may be accessed by multiple processes
  110. Notes:    shared memory objects are created as special files (thus the
  111.       restriction on the name)
  112.     on successful creation, the reference count is set to 1
  113. SeeAlso: AX=8401h,AX=8402h,INT 15/AX=DE19h
  114. --------D-218401-----------------------------
  115. INT 21 - European MS-DOS 4.0 - "GETMEM" - OBTAIN ACCESS TO SHARED MEMORY AREA
  116.     AX = 8401h
  117.     CX = flags
  118.         bit 7: writable segment (ignored by MS-DOS 4.0)
  119.     DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
  120. Return: CF clear if successful
  121.         AX = segment address of shared memory global object
  122.         CX = size in bytes
  123.     CF set on error
  124.         AX = error code (invalid name)
  125. Desc:    get address of a previously-created area of memory which may be
  126.       accessed by multiple processes
  127. Note:    this call increments the reference count for the shared memory area
  128. SeeAlso: AX=8400h,AX=8402h
  129. --------D-218402-----------------------------
  130. INT 21 - European MS-DOS 4.0 - "RELEASEMEM" - FREE SHARED MEMORY AREA
  131.     AX = 8402h
  132.     BX = handle (segment address of shared memory object)
  133. Return: CF clear if successful
  134.     CF set on error
  135.         AX = error code (no such name)
  136. Desc:    indicate that the specified area of shared memory will no longer be
  137.       used by the caller
  138. Note:    the reference count is decremented and the shared memory area is
  139.       deallocated if the new reference count is zero
  140. SeeAlso: AX=8400h,AX=8401h,INT 15/AX=DE19h
  141. --------D-2185-------------------------------
  142. INT 21 U - European MS-DOS 4.0 - ???
  143.     AH = 85h
  144.     ???
  145. Return: ???
  146. --------D-2186-------------------------------
  147. INT 21 - European MS-DOS 4.0 - "SETFILETABLE" - INSTALL NEW FILE HANDLE TABLE
  148.     AH = 86h
  149.     BX = total number of file handles in new table
  150. Return: CF clear if successful
  151.     CF set on error
  152.         AX = error code (06h,08h) (see AH=59h)
  153. Desc:    adjust the size of the per-process open file table, thus raising or
  154.       lowering the limit on the number of files the caller can open
  155.       simultaneously
  156. Notes:    any currently-open files are copied to the new table
  157.     if the table is increased beyond the default 20 handles, only the
  158.       first 20 will be inherited by child processes
  159.     error 06h is returned if the requested number of handles exceeds
  160.       system limits or would require closing currently-open files
  161. SeeAlso: AH=26h,AH=67h
  162. --------D-2187-------------------------------
  163. INT 21 - European MS-DOS 4.0 - "GETPID" - GET PROCESS IDENTIFIER
  164.     AH = 87h
  165. Return: AX = PID
  166.     BX = parent process's PID
  167.     CX = Command Subgroup ID (CSID)
  168. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  169.       by several other European OEMs; its release falls between mainstream
  170.       versions 3.2 and 3.3
  171. Desc:    determine an identifier by which to access the calling process
  172. Notes:    called by MS C v5.1 getpid() function
  173.     this function apparently must return AX=0001h for INT 21/AH=80h to
  174.       succeed
  175.     one possible check for European MS-DOS 4.0 is to issue this call with
  176.       AL=00h and check whether AL is nonzero on return
  177. SeeAlso: AH=30h,AH=62h,AH=80h
  178. Index:    installation check;European MS-DOS 4.0
  179. --------D-2188-------------------------------
  180. INT 21 U - European MS-DOS 4.0 - ???
  181.     AH = 88h
  182.     ???
  183. Return: ???
  184. SeeAlso: AH=87h
  185. --------D-2189-------------------------------
  186. INT 21 - European MS-DOS 4.0 - SLEEP
  187.     AH = 89h
  188.     CX = time in milliseconds or 0000h to give up time slice
  189. Return: CF clear if successful
  190.         CX = 0000h
  191.     CF set on error
  192.         AX = error code (interrupted system call)
  193.         CX = sleep time remaining
  194. Desc:    suspend the calling process for the specified duration
  195. Notes:    the sleep interval is rounded up to the next higher increment of the
  196.       scheduler clock, and may be extended further if other processes are
  197.       running
  198.     this call may be interrupted by signals (see AH=8Dh)
  199.     reportedly called by Microsoft C 4.0 startup code
  200.     background processes have higher priority than the foreground process,
  201.       and should thus periodically yield the CPU
  202. SeeAlso: AH=81h,INT 15/AX=1000h,INT 2F/AX=1680h,INT 7A/BX=000Ah
  203. --------v-2189-------------------------------
  204. INT 21 - VIRUS - "Vriest" - INSTALLATION CHECK
  205.     AH = 89h
  206. Return: AX = 0123h if resident
  207. SeeAlso: AH=84h"VIRUS",AH=90h"VIRUS"
  208. --------D-218A-------------------------------
  209. INT 21 - European MS-DOS 4.0 - "CWAIT" - WAIT FOR CHILD TO TERMINATE
  210.     AH = 8Ah
  211.     BL = range (00h command subtree, 01h any child)
  212.     BH = suspend flag
  213.         00h suspend if children exist but none are dead
  214.         01h return if no dead children
  215.     CX = Process ID of head of command subtree
  216. Return: CF clear if successful
  217.         AH = termination type
  218.         00h normal termination
  219.         01h aborted by Control-C
  220.         02h aborted by I/O error
  221.         03h terminate and stay resident
  222.         04h aborted by signal
  223.         05h aborted by program error
  224.         AL = return code from child or aborting signal
  225.         BX = PID of child (0000h if no dead children)
  226.     CF set on error
  227.         AX = error code (no child,interrupted system call)
  228. Desc:    get return code from an asynchronously-executed child program,
  229.       optionally waiting if no return code is available
  230. SeeAlso: AH=4Bh,AH=4Dh,AH=80h,AH=8Dh
  231. --------D-218B-------------------------------
  232. INT 21 U - European MS-DOS 4.0 - ???
  233.     AH = 8Bh
  234.     ???
  235. Return: ???
  236. SeeAlso: AH=87h
  237. --------D-218C-------------------------------
  238. INT 21 - European MS-DOS 4.0 - SET SIGNAL HANDLER
  239.     AH = 8Ch
  240.     AL = signal number (see below)
  241.     BL = action (see below)
  242.     DS:DX -> signal handler
  243. Return: CF clear if successful
  244.         AL = previous action
  245.         ES:BX -> previous signal handler
  246.     CF set on error
  247.         AX = error code (01h,invalid SigNumber or Action) (see AH=59h)
  248. Desc:    set the routine which will be invoked on a number of exceptional
  249.       conditions
  250. Note:    all signals will be sent to the most recently installed handler
  251. SeeAlso: AH=8Dh
  252.  
  253. Values for signal number:
  254.  01h    SIGINTR        Control-C or user defined interrupt key
  255.  08h    SIGTERM        program termination
  256.  09h    SIGPIPE        broken pipe
  257.  0Dh    SIGUSER1    reserved for user definition
  258.  0Eh    SIGUSER2    reserved for user definition
  259.  
  260. Values for signal action:
  261.  00h    SIG_DFL        terminate process on receipt
  262.  01h    SIG_IGN        ignore signal
  263.  02h    SIG_GET        signal is accepted
  264.  03h    SIG_ERR        sender gets error
  265.  04h    SIG_ACK        acknowledge received signal and clear it, but don't
  266.             change current setting
  267.  
  268. Signal handler is called with:
  269.     AL = signal number
  270.     AH = signal argument
  271. Return: RETF, CF set: terminate process
  272.     RETF, CF clear, ZF set: abort any interrupted system call with an error
  273.     RETF, CF clear, ZF clear: restart any interrupted system call
  274.     IRET: restart any interrupted system call
  275. Note:    the signal handler may also perform a nonlocal GOTO by resetting the
  276.       stack pointer and jumping; before doing so, it should dismiss the
  277.       signal by calling this function with BL=04h
  278. --------D-218D-------------------------------
  279. INT 21 - European MS-DOS 4.0 - SEND SIGNAL
  280.     AH = 8Dh
  281.     AL = signal number (see AH=8Ch)
  282.     BH = signal argument
  283.     BL = action
  284.         00h send to entire command subtree
  285.         01h send only to specified process
  286.     DX = Process ID
  287. Return: CF clear if successful
  288.     CF set on error
  289.         AX = error code (01h,06h)(see AH=59h)
  290. Desc:    invoke the exceptional-condition handler for the specified process
  291. Note:    error 06h may be returned if one or more of the affected processes
  292.       have an error handler for the signal
  293. SeeAlso: AH=8Ch
  294. --------D-218E00BH00-------------------------
  295. INT 21 - European MS-DOS 4.0 - "SETPRI" - GET/SET PROCESS PRIORITY
  296.     AX = 8E00h
  297.     BH = 00h
  298.     BL = action
  299.         00h set priority for command subtree
  300.         01h set priority for specified process only
  301.     CX = Process ID
  302.     DH = 00h
  303.     DL = change in priority (00h to get priority)
  304. Return: CF clear if successful
  305.         DL = process priority
  306.         DH destroyed
  307.     CF set on error
  308.         AX = error code (01h,no such process)(see AH=59h)
  309. Desc:    specify or determine the execution priority of the specified process
  310.       or the process and all of its children
  311. SeeAlso: AH=81h
  312. --------D-218F-------------------------------
  313. INT 21 U - European MS-DOS 4.0 - ???
  314.     AH = 8Fh
  315.     ???
  316. Return: ???
  317. SeeAlso: AH=87h
  318. --------D-2190-------------------------------
  319. INT 21 U - European MS-DOS 4.0 - ???
  320.     AH = 90h
  321.     ???
  322. Return: ???
  323. SeeAlso: AH=87h
  324. --------v-2190-------------------------------
  325. INT 21 - VIRUS - "Carioca" - INSTALLATION CHECK
  326.     AH = 90h
  327. Return: AH = 01h if resident
  328. SeeAlso: AH=89h"VIRUS",AX=9753h"VIRUS"
  329. --------D-2191-------------------------------
  330. INT 21 U - European MS-DOS 4.0 - ???
  331.     AH = 91h
  332.     ???
  333. Return: ???
  334. SeeAlso: AH=87h
  335. --------D-2192-------------------------------
  336. INT 21 U - European MS-DOS 4.0 - ???
  337.     AH = 92h
  338.     ???
  339. Return: ???
  340. SeeAlso: AH=87h
  341. --------D-2193-------------------------------
  342. INT 21 - European MS-DOS 4.0 - "PIPE" - CREATE A NEW PIPE
  343.     AH = 93h
  344.     CX = size in bytes
  345. Return: CF clear if successful
  346.         AX = read handle
  347.         BX = write handle
  348.     CF set on error
  349.         AX = error code (08h) (see AH=59h)
  350. Desc:    create a communications channel which may be used for interprocess
  351.       data and command exchanges
  352. SeeAlso: AH=3Ch,AH=3Fh,AH=40h,AH=84h
  353. --------D-2194-------------------------------
  354. INT 21 U - European MS-DOS 4.0 - ???
  355.     AH = 94h
  356.     ???
  357. Return: ???
  358. SeeAlso: AH=87h
  359. --------D-2195-------------------------------
  360. INT 21 - European MS-DOS 4.0 - HARD ERROR PROCESSING
  361.     AH = 95h
  362.     AL = new state
  363.        00h enabled
  364.        01h disabled, automatically fail hard errors
  365. Return: AX = previous setting
  366. Desc:    specify whether hard (critical) errors should automatically fail the
  367.       system call or invoke an INT 24
  368. SeeAlso: INT 24
  369. --------D-2196-------------------------------
  370. INT 21 U - European MS-DOS 4.0 - ???
  371.     AH = 96h
  372.     ???
  373. Return: ???
  374. --------D-2197-------------------------------
  375. INT 21 U - European MS-DOS 4.0 - ???
  376.     AH = 97h
  377.     ???
  378. Return: ???
  379. --------v-219753-----------------------------
  380. INT 21 - VIRUS - "Nina" - INSTALLATION CHECK
  381.     AX = 9753h
  382. Return: never (executes original program) if virus resident
  383. SeeAlso: AH=90h"VIRUS",AX=A1D5h"VIRUS"
  384. --------D-2198-------------------------------
  385. INT 21 U - European MS-DOS 4.0 - ???
  386.     AH = 98h
  387.     ???
  388. Return: ???
  389. --------D-2199-------------------------------
  390. INT 21 u - European MS-DOS 4.0 - "PBLOCK" - BLOCK A PROCESS
  391.     AH = 99h
  392.     DS:BX -> memory location to block on
  393.     CX = timeout in milliseconds
  394.     DH = nonzero if interruptable
  395. Return: CF clear if awakened by event
  396.         AX = 0000h
  397.     CF set if unusual wakeup
  398.         ZF set if timeout, clear if interrupted by signal
  399.         AX = nonzero
  400. Desc:    suspend calling process until another process sends a "restart" signal
  401.       or a timeout occurs
  402. SeeAlso: AH=9Ah,INT 2F/AX=0802h
  403. --------D-219A-------------------------------
  404. INT 21 u - European MS-DOS 4.0 - "PRUN" - UNBLOCK A PROCESS
  405.     AH = 9Ah
  406.     DS:BX -> memory location processes may have blocked on
  407. Return: AX = number of processes awakened
  408.     ZF set if no processes awakened
  409. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  410.       by several other European OEMs; its release falls between mainstream
  411.       versions 3.2 and 3.3
  412. Desc:    restart all processes waiting for the specified "restart" signal
  413. SeeAlso: AH=99h,INT 2F/AX=0802h
  414. --------I-21A0-------------------------------
  415. INT 21 - Attachmate Extra - GET 3270 DISPLAY STATE
  416.     AH = A0h
  417. Return: AL = display status
  418.         bit     7  : 0=windowed, 1=enlarged
  419.         bits 6-3: current screen profile number 0-9
  420.         bits 2-0: active window number
  421.             0=PC, 1-4=host B-E, 5-6=notepad F-G
  422.     BX = host window status (see below)
  423. Program: Attachmate Extra is a 3270 emulator by Attachmate Corporation
  424. SeeAlso: AH=A1h
  425.  
  426. Bitfields for host window status:
  427.  bit 15 reserved
  428.  bit 14 0=host E window installed, 1=not
  429.  bit 13 0=host E terminal on, 1=off
  430.  bit 12 0=host E window displayed, 1=not
  431.  bit 11 reserved
  432.  bit 10 0=host D window installed, 1=not
  433.  bit 9    0=host D terminal on, 1=off
  434.  bit 8    0=host D window displayed, 1=not
  435.  bit 7    reserved
  436.  bit 6    0=host C window installed, 1=not
  437.  bit 5    0=host C terminal on, 1=off
  438.  bit 4    0=host C window displayed, 1=not
  439.  bit 3    reserved
  440.  bit 2    0=host B window installed, 1=not
  441.  bit 1    0=host B terminal on, 1=off
  442.  bit 0    0=host B window displayed, 1=not
  443. --------I-21A1-------------------------------
  444. INT 21 - Attachmate Extra - SET 3270 DISPLAY STATE
  445.     AH = A1h
  446.     AL = set status byte
  447.         bit     7  : 0=windowed, 1=enlarged
  448.         bits 6-3: current screen profile number 0-9
  449.         bits 2-0: active window number
  450.             0=PC, 1-4=host B-E, 5-6=notepad F-G
  451. SeeAlso: AH=A0h,AH=A2h
  452. --------v-21A1D5-----------------------------
  453. INT 21 - VIRUS - "789"/"Filehider" - INSTALLATION CHECK
  454.     AX = A1D5h
  455. Return: AX = 900Dh if resident
  456. SeeAlso: AX=9753h,AX=A55Ah
  457. --------I-21A2-------------------------------
  458. INT 21 - Attachmate Extra - SET HOST WINDOW STATE
  459.     AH = A2h
  460.     AL = set status byte
  461.         bit     7  : 0=power off, 1=power on
  462.         bit     6  : 0=not installed, 1=installed
  463.         bits 5-3: reserved
  464.         bits 2-0: window number 1-4=host B-E
  465. SeeAlso: AH=A1h
  466. --------I-21A3-------------------------------
  467. INT 21 - Attachmate Extra - SEND KEYSTROKES TO HOST WINDOW
  468.     AH = A3h
  469.     AL = window number (1-4=host B-E)
  470.     CX = 0001h
  471.     DS:BX -> keystroke buffer
  472.     DL = zero if keystroke buffer contains host function code,
  473.          non-zero if keystroke buffer contains ASCII character
  474. Return: CX = zero if character sent, non-zero if not
  475.     BX incremented if CX=0
  476.  
  477. Values for host function code:
  478.     00h=reserved    10h=PF16    20h=Clear    30h=SysRq
  479.     01h=PF1        11h=PF17    21h=Print    31h=ErInp
  480.     02h=PF2        12h=PF18    22h=Left    32h=ErEof
  481.     03h=PF3        13h=PF19    23h=Right    33h=Ident
  482.     04h=PF4        14h=PF20    24h=Up        34h=Test
  483.     05h=PF5        15h=PF21    25h=Down    35h=Reset
  484.     06h=PF6        16h=PF22    26h=Home    36h=DevCncl
  485.     07h=PF7        17h=PF23    27h=Fast Left    37h=Dup
  486.     08h=PF8        18h=PF24    28h=Fast Right    38h=FldMark
  487.     09h=PF9        19h=Alt on    29h=Bksp    39h=Enter
  488.     0Ah=PF10    1Ah=Alt off    2Ah=Insert    3Ah=CrSel
  489.     0Bh=PF11    1Bh=Shift on    2Bh=Delete
  490.     0Ch=PF12    1Ch=Shift off    2Ch=Backtab
  491.     0Dh=PF13    1Dh=PA1        2Dh=Tab
  492.     0Eh=PF14    1Eh=PA2        2Eh=Newline
  493.     0Fh=PF15    1Fh=PA3        2Fh=Attn
  494. --------I-21A4-------------------------------
  495. INT 21 - Attachmate Extra - GET HOST WINDOW BUFFER ADDRESS
  496.     AH = A4h
  497.     AL = window number (1-4=host B-E)
  498. Return: DS:BX -> 3270 display buffer
  499. SeeAlso: AH=A5h,AH=B8h
  500. --------I-21A5-------------------------------
  501. INT 21 - Attachmate Extra - GET HOST WINDOW CURSOR POSITION
  502.     AH = A5h
  503.     AL = window number (1-4=host B-E)
  504. Return: BX = cursor position (80 * row + column, where 0:0 is upper left)
  505. Note:    if the host window is configured with the Extended Attribute (EAB)
  506.       feature, multiply the cursor position by 2 to obtain the byte offset
  507.       into the display buffer
  508. SeeAlso: AH=A4h
  509. --------v-21A55A-----------------------------
  510. INT 21 - VIRUS - "Eddie-2" - INSTALLATION CHECK
  511.     AX = A55Ah
  512. Return: AX = 5AA5h if resident
  513. SeeAlso: AX=A1D5h,AX=AA00h
  514. --------v-21AA00-----------------------------
  515. INT 21 - VIRUS - "Blinker" - INSTALLATION CHECK
  516.     AX = AA00h
  517. Return: AX = 00AAh if resident
  518. SeeAlso: AX=A55Ah,AX=AA03h
  519. --------v-21AA03-----------------------------
  520. INT 21 - VIRUS - "Backtime" - INSTALLATION CHECK
  521.     AX = AA03h
  522. Return: AX = 03AAh if resident
  523. SeeAlso: AX=AA00h,AH=ABh
  524. --------v-21AB-------------------------------
  525. INT 21 - VIRUS - "600" or "Voronezh"-family - INSTALLATION CHECK
  526.     AH = ABh
  527. Return: AX = 5555h if resident
  528. SeeAlso: AX=AA03h,AX=BBBBh"VIRUS"
  529. --------I-21AF-------------------------------
  530. INT 21 - Attachmate Extra - GET TRANSLATE TABLE ADDRESS
  531.     AH = AFh
  532. Return: DS:BX -> translate tables (see below)
  533.  
  534. Format of translate tables:
  535. Offset    Size    Description
  536.  00h 256 BYTEs    ASCII to 3270 buffer code translate table
  537. 100h 256 BYTEs    3270 buffer code to ASCII translate table
  538. 200h 256 BYTEs    3270 buffer code to EBCDIC translate table
  539. 300h 256 BYTEs    EBCDIC to 3270 buffer code translate table
  540. --------N-21B3-------------------------------
  541. INT 21 U - Novell NetWare - DOS Requester v1.03 - ???
  542.     AH = B3h
  543.     ???
  544. Return: ???
  545. --------N-21B4-------------------------------
  546. INT 21 U - Novell NetWare - "AttachHandle"
  547.     AH = B4h
  548.     DS:SI -> input buffer (see below)
  549. Return: AX = handle or return code
  550. Note:    this is an interface provided by NetWare to give DOS file access to
  551.       NetWare files on non-DOS systems such as Macintosh, OS/2, and Unix
  552.  
  553. Format of input buffer:
  554. Offset    Size    Description
  555.  00h    BYTE    "WorkFileServer"
  556.  01h    BYTE    access code
  557.  02h    DWORD    "OpenHandle"
  558.  06h    WORD    "OpenHandleCount"
  559.  08h    DWORD    "OpenFileSize"
  560. --------N-21B500-----------------------------
  561. INT 21 U - Novell NetWare - VNETWARE.386 API - GET INSTANCE DATA
  562.     AX = B500h
  563. Return: ES:BX -> data
  564.     CX = length
  565. SeeAlso: AX=B501h,AX=B502h
  566. --------N-21B501-----------------------------
  567. INT 21 U - Novell NetWare - VNETWARE.386 API - END VIRTUAL MACHINE
  568.     AX = B501h
  569. SeeAlso: AX=B500h,AX=B502h
  570. --------N-21B502-----------------------------
  571. INT 21 U - Novell NetWare - VNETWARE.386 API - START VIRTUAL MACHINE
  572.     AX = B502h
  573. SeeAlso: AX=B500h,AX=B501h
  574. --------N-21B5-------------------------------
  575. INT 21 - Novell NetWare shell 3.01 - TASK MODE CONTROL
  576.     AH = B5h
  577.     AL = subfunction
  578.         03h get task mode
  579.         Return: AH = 00h
  580.             AL = current task mode byte
  581.         04h get task mode pointer
  582.         Return: ES:BX -> task mode byte
  583. Notes:    the task mode byte specifies how task cleanup should be performed, but
  584.       is declared to be version-dependent
  585.     allows a program to disable the automatic cleanup for programs managing
  586.       task swapping, etc.
  587.  
  588. Values for task mode byte in version 3.01:
  589.  00h-03h reserved
  590.  04h     no task cleanup
  591. --------N-21B505-----------------------------
  592. INT 21 U - Novell NetWare - VNETWARE.386 API - SET VIRTUAL MACHINE ID
  593.     AX = B505h
  594.     ???
  595. Return: ???
  596. SeeAlso: AX=B502h,AX=B506h
  597. --------N-21B506-----------------------------
  598. INT 21 U - Novell NetWare - VNETWARE.386 API - GET VIRTUAL MACH SUPPORT LEVEL
  599.     AX = B506h
  600. Return: AX = ??? (0002h)
  601. SeeAlso: AX=B505h
  602. --------N-21B6-------------------------------
  603. INT 21 - Novell NetWare - FILE SERVICES - EXTENDED FILE ATTRIBUTES
  604.     AH = B6h
  605.     AL = subfunction
  606.         00h get extended file attributes
  607.         01h set extended file attributes
  608.         CL = extended file attributes (see below)
  609.     DS:DX -> ASCIZ pathname (max 255 bytes)
  610. Return: CF set on error
  611.         AL = error code
  612.         8Ch caller lacks privileges
  613.         FEh not permitted to search directory
  614.         FFh file not found
  615.     CF clear if successful
  616.         AL = 00h (success)
  617.         CL = current extended file attributes (see below)
  618. Note:    this function is supported by Advanced NetWare 2.1+
  619. SeeAlso: AX=4300h,AH=E3h/SF=0Fh
  620.  
  621. Bitfields for extended file attributes:
  622.  bits 2-0  search mode (executables only)
  623.     000 none (use shell's default search)
  624.     001 search on all opens without path
  625.     010 do not search
  626.     011 search on read-only opens without path
  627.     100 reserved
  628.     101 search on all opens
  629.     110 reserved
  630.     111 search on all read-only opens
  631.  bit 3    reserved
  632.  bit 4    transactions on file tracked
  633.  bit 5    file's FAT indexed
  634.  bit 6    read audit (to be implemented)
  635.  bit 7    write audit (to be implemented)
  636. --------N-21B7-------------------------------
  637. INT 21 U - Novell NetWare - "HoldFileModeSet" (obsolete)
  638.     AH = B7h
  639.     AL = new value for HoldFileFlag
  640. Return: AL = previous value of HoldFileFlag
  641. Note:    this function provided backward compatibility with a bug in early
  642.       DOS versions and CP/M, but is no longer used or supported
  643. --------I-21B8-------------------------------
  644. INT 21 - Attachmate Extra - DISABLE HOST BUFFER UPDATES
  645.     AH = B8h
  646.     AL = window number (1-4=host B-E)
  647.     DL = 01h
  648. Notes:    only valid in CUT mode
  649.     next AID keystroke (eg Enter) enables host buffer updates
  650. SeeAlso: AH=A4h
  651. --------N-21B800-----------------------------
  652. INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT CAPTURE FLAGS
  653.     AX = B800h
  654.     CX = size of reply buffer (01h-3Fh)
  655.     ES:BX -> reply buffer for capture flags table (see below)
  656. Return: AL = status
  657.         00h successful
  658. Note:    this function is supported by Advanced NetWare 2.0+
  659. SeeAlso: AX=B801h,AX=B802h,AH=DFh/DL=00h,AH=DFh/DL=04h
  660.  
  661. Format of capture flags table:
  662. Offset    Size    Description
  663.  00h    BYTE    status (used internally, should be set to 00h)
  664.  01h    BYTE    print flags
  665.         bit 2: print capture file if interrupted by loss of connection
  666.         bit 3: no automatic form feed after print job
  667.         bit 6: printing control sequences interpreted by print service
  668.         bit 7: print banner page before capture file
  669.  02h    BYTE    tab size (01h-12h, default 08h)
  670.  03h    BYTE    printer number on server (00h-04h, default 00h)
  671.  04h    BYTE    number of copies to print (00h-FFh, default 01h)
  672.  05h    BYTE    form type required in printer (default 00h)
  673.  06h    BYTE    reserved
  674.  07h 13 BYTEs    text to be placed on banner page
  675.  14h    BYTE    reserved
  676.  15h    BYTE    default local printer (00h = LPT1)
  677.  16h    WORD    (big-endian) timeout in clock ticks for flushing capture file
  678.         on inactivity, or 0000h to disable timeout
  679.  18h    BYTE    flush capture file on LPT close if nonzero
  680.  19h    WORD    (big-endian) maximum lines per page
  681.  1Bh    WORD    (big-endian) maximum characters per line
  682.  1Dh 13 BYTEs    name of form required in printer
  683.  2Ah    BYTE    LPT capture flag
  684.         00h inactive, FFh LPT device is being captured
  685.  2Bh    BYTE    file capture flag
  686.         00h if no file specified, FFh if capturing to file
  687.  2Ch    BYTE    timing out (00h if no timeout in effect, FFh if timeout counter
  688.         running)
  689.  2Dh    DWORD    (big-endian) address of printer setup string
  690.  31h    DWORD    (big-endian) address of printer reset string
  691.  35h    BYTE    target connection ID
  692.  36h    BYTE    capture in progress if FFh
  693.  37h    BYTE    job queued for printing if FFh
  694.  38h    BYTE    print job valid if FFh
  695.  39h    DWORD    bindery object ID of print queue if previous byte FFh
  696.  3Dh    WORD    (big-endian) print job number (1-999)
  697. --------N-21B801-----------------------------
  698. INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT CAPTURE FLAGS
  699.     AX = B801h
  700.     CX = size of buffer (01h-3Fh)
  701.     ES:BX -> buffer containing capture flags table (see below)
  702. Return: AL = status
  703.         00h successful
  704. Note:    this function is supported by Advanced NetWare 2.0+
  705. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  706. --------N-21B802-----------------------------
  707. INT 21 - Novell NetWare - PRINT SERVICES - GET SPECIFIC CAPTURE FLAGS
  708.     AX = B802h
  709.     CX = size of reply buffer (01h-3Fh)
  710.     DH = LPT port (00h-02h)
  711.     ES:BX -> reply buffer for capture flags table (see AX=B800h)
  712. Return: AL = status
  713.         00h successful
  714. Note:    this function is supported by Advanced NetWare 2.1+
  715. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  716. --------N-21B803-----------------------------
  717. INT 21 - Novell NetWare - PRINT SERVICES - SET SPECIFIC CAPTURE FLAGS
  718.     AX = B803h
  719.     CX = size of buffer (01h-3Fh)
  720.     DH = LPT port (00h-02h)
  721.     ES:BX -> buffer containing capture flags table (see below)
  722. Return: AL = status
  723.         00h successful
  724. Note:    this function is supported by Advanced NetWare 2.1+
  725. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  726. --------N-21B804-----------------------------
  727. INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT LOCAL PRINTER
  728.     AX = B804h
  729. Return: DH = default LPT port (00h-02h)
  730. Note:    this function is supported by Advanced NetWare 2.1+
  731. SeeAlso: AX=B800h,AX=B805h,AH=DFh/DL=00h
  732. --------N-21B805-----------------------------
  733. INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT LOCAL PRINTER
  734.     AX = B805h
  735.     DH = new default LPT port (00h-02h)
  736. Return: AL = status
  737.         00h successful
  738. Note:    this function is supported by Advanced NetWare 2.1+
  739. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h
  740. --------N-21B806-----------------------------
  741. INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT QUEUE
  742.     AX = B806h
  743.     DH = LPT port (00h-02h)
  744.     BX:CX = print queue's object ID
  745. Return: AL = status
  746.         00h successful
  747.         FFh job already set
  748. Desc:    specify the print queue on which a print job is to be placed the next
  749.       time a capture is started on the given printer port
  750. Note:    this function is supported by Advanced NetWare 2.1+
  751. SeeAlso: AX=B801h,AX=B807h,AX=E009h
  752. --------N-21B807-----------------------------
  753. INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT JOB
  754.     AX = B807h
  755.     DH = LPT port (00h-02h)
  756.     BX = job number (see AH=E3h/SF=68h)
  757.     SI:DI:CX = NetWare file handle (see AH=E3h/SF=68h)
  758. Return: AL = status
  759.         00h successful
  760.         FFh job already queued
  761. Desc:    specify the capture file and print job to be used for subsequent
  762.       output to the given printer port
  763. Note:    this function is supported by Advanced NetWare 2.1+
  764. SeeAlso: AX=B801h,AX=B806h,AX=E009h,AH=E3h/SF=68h
  765. --------N-21B808-----------------------------
  766. INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME
  767.     AX = B808h
  768.     ES:BX -> 12-byte buffer for user name
  769. Return: AL = status
  770.         00h successful
  771. Desc:    get the user name which is printed on the banner page
  772. Notes:    this function is supported by Advanced NetWare 2.1+
  773.     the default name is the login name of the user
  774. SeeAlso: AX=B809h
  775. --------N-21B809-----------------------------
  776. INT 21 - Novell NetWare - PRINT SERVICES - SET BANNER USER NAME
  777.     AX = B809h
  778.     ES:BX -> 12-byte buffer containing user name
  779. Return: AL = status
  780.         00h successful
  781. Desc:    specify the user name which is printed on the banner page
  782. Notes:    this function is supported by Advanced NetWare 2.1+
  783.     the default name is the login name of the user
  784. SeeAlso: AX=B808h
  785. --------N-21B9-------------------------------
  786. INT 21 U - Novell NetWare - "SpecialAttachableFunction"
  787.     AH = B9h
  788.     AL = FFh to hook this function
  789.         ES:BX -> function to invoke on AH=B9h when AL<>FFh
  790. Note:    this function is no longer used or supported by current versions of
  791.       NetWare
  792. --------N-21BA-------------------------------
  793. INT 21 U - Novell NetWare - "ReturnCommandComPointers"
  794.     AH = BAh
  795. Return: DX = environment segment
  796.     ES:DI -> COMMAND.COM drive
  797. Desc:    used to edit the COMSPEC and PATH variables in the master environment
  798.       when mapping network drives
  799. Note:    this function was documented in older Novell documents which are no
  800.       longer available
  801. --------N-21BB-------------------------------
  802. INT 21 - Novell NetWare - WORKSTATION - SET END OF JOB STATUS
  803.     AH = BBh
  804.     AL = new EOJ flag
  805.         00h disable EOJs
  806.         01h enable EOJs
  807. Return: AL = old EOJ flag
  808. Desc:    specify whether the network shell should automatically generate an
  809.       End of Job call when the root command processor regains control
  810. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  811.       Alloy NTNX
  812. SeeAlso: AH=19h,AH=D6h
  813. --------v-21BBBB-----------------------------
  814. INT 21 - VIRUS - "Hey You" - INSTALLATION CHECK
  815.     AX = BBBBh
  816. Return: AX = 6969h
  817. SeeAlso: AH=ABh"VIRUS",AH=BEh"VIRUS"
  818. --------N-21BC-------------------------------
  819. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG PHYSICAL RECORD
  820.     AH = BCh
  821.     AL = flags
  822.         bit 0: lock as well as log record
  823.         bit 1: non-exclusive lock
  824.     BX = file handle
  825.     CX:DX = starting offset in file
  826.     SI:DI = length of region to lock
  827.     BP = timeout in timer ticks (1/18 sec)
  828.         0000h = don't wait if already locked
  829. Return: AL = status
  830.         00h successful
  831.         96h no dynamic memory for file
  832.         FEh timed out
  833.         FFh failed
  834. Desc:    add the specified physical record to the log table, optionally locking
  835.       it
  836. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  837.       Alloy NTNX
  838. SeeAlso: AH=5Ch,AH=BDh,AH=BEh,AH=BFh,AH=C2h,AH=D0h
  839. --------N-21BD-------------------------------
  840. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECORD
  841.     AH = BDh
  842.     BX = file handle
  843.     CX:DX = starting offset in file
  844.     SI:DI = length of record
  845. Return: AL = status
  846.         00h successful
  847.         FFh record not locked
  848. Desc:    unlock the specified physical record but do not remove it from log
  849.       table
  850. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  851.       Alloy NTNX
  852. SeeAlso: AH=BCh,AH=BEh"NetWare",AH=C0h,AH=C3h,AH=D2h
  853. --------N-21BE-------------------------------
  854. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD
  855.     AH = BEh
  856.     BX = file handle
  857.     CX:DX = starting offset within file
  858.     SI:DI = record length in bytes
  859. Return: AL = status
  860.         00h successful
  861.         FFh specified record not locked
  862. Desc:    unlock the physical record and remove it from the log table
  863. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  864.       Alloy NTNX
  865. SeeAlso: AH=5Ch,AH=BCh,AH=BDh,AH=C1h,AH=C4h,AH=D4h
  866. --------v-21BE-------------------------------
  867. INT 21 - VIRUS - "Datalock" - INSTALLATION CHECK
  868.     AH = BEh
  869. Return: AX = 1234h if resident
  870. SeeAlso: AX=BBBBh,AX=BE00h
  871. --------v-21BE00-----------------------------
  872. INT 21 - VIRUS - "USSR-1049" - INSTALLATION CHECK
  873.     AX = BE00h
  874.     CF set
  875. Return: CF clear if resident
  876. SeeAlso: AH=BEh"VIRUS",AH=C0h"VIRUS"
  877. --------N-21BF-------------------------------
  878. INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK RECORD (FCB)
  879.     AH = BFh
  880.     AL = flags
  881.         bit 0: lock as well as log record
  882.         bit 1: non-exclusive lock
  883.     DS:DX -> opened FCB (see AH=0Fh)
  884.     BX:CX = offset
  885.     BP = lock timeout in timer ticks (1/18 sec) if AL nonzero
  886.     SI:DI = length
  887. Return: AL = error code (see AH=BCh)
  888. Note:    this function was added in NetWare 4.6, but was removed some time prior
  889.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  890.       documentation
  891. SeeAlso: AH=BCh,AH=C0h"NetWare",AH=C2h"NetWare"
  892. --------N-21C0-------------------------------
  893. INT 21 O - Novell NetWare, Alloy NTNX - RELEASE RECORD (FCB)
  894.     AH = C0h
  895.     DS:DX -> non-extended FCB (see AH=0Fh)
  896.     BX:CX = offset
  897. Return: AL = error code (see AH=BCh)
  898. Notes:    unlocks record but does not remove it from log table
  899.     this function was added in NetWare 4.6, but was removed some time prior
  900.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  901.       documentation
  902. SeeAlso: AH=BDh,AH=BFh,AH=C1h"NetWare",AH=C3h
  903. --------v-21C0-------------------------------
  904. INT 21 - VIRUS - "Slow"/"Zerotime", "Solano" - INSTALLATION CHECK
  905.     AH = C0h
  906. Return: AX = 0300h if "Slow"/"Zerotime" resident
  907.     AX = 1234h if "Solano" resident
  908. SeeAlso: AX=BE00h,AH=C1h"VIRUS",AX=C301h"VIRUS"
  909. --------N-21C1-------------------------------
  910. INT 21 O - Novell NetWare, Alloy NTNX - CLEAR RECORD (FCB)
  911.     AH = C1h
  912.     DS:DX -> opened FCB (see AH=0Fh)
  913.     BX:CX = offset
  914. Return: AL = error code (see AH=BCh)
  915. Note:    unlocks record and removes it from log table
  916.     this function was added in NetWare 4.6, but was removed some time prior
  917.       to Advanced NetWare, and is no longer listed in current Novell
  918.       documentation
  919. SeeAlso: AH=BEh,AH=C0h"NetWare",AH=C4h
  920. --------v-21C1-------------------------------
  921. INT 21 - VIRUS - "Solano" - ???
  922.     AH = C1h
  923.     ???
  924. Return: ???
  925. SeeAlso: AH=C0h"VIRUS"
  926. --------N-21C2-------------------------------
  927. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK PHYSICAL RECORD SET
  928.     AH = C2h
  929.     AL = flags
  930.         bit 1: non-exclusive lock
  931.     BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  932. Return: AL = status
  933.         00h successful
  934.         FEh timed out
  935.         FFh failed
  936. Desc:    attempt to lock all physical records listed in the log table
  937. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  938.       Alloy NTNX
  939.     status FFh will be returned if one or more physical records have been
  940.       exclusively locked by another process
  941. SeeAlso: AH=BFh,AH=C3h,AH=D1h
  942. --------v-21C2-------------------------------
  943. INT 21 - VIRUS - "Scott's Valley" - ???
  944.     AH = C2h
  945.     ???
  946. Return: ???
  947. SeeAlso: AH=C0h"VIRUS"
  948. --------N-21C3-------------------------------
  949. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECRD SET
  950.     AH = C3h
  951. Desc:    unlock all currently-locked physical records in the log table, but do
  952.       not remove them from the table
  953. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  954.       Alloy NTNX
  955. SeeAlso: AH=BDh,AH=C0h,AH=C2h"NetWare",AH=C4h,AH=D3h
  956. --------v-21C301DXF1F1-----------------------
  957. INT 21 - VIRUS - "905"/"Backfont" - INSTALLATION CHECK
  958.     AX = C301h
  959.     DX = F1F1h
  960. Return: DX = 0E0Eh if resident
  961. SeeAlso: AH=C0h"VIRUS",AX=C500h"VIRUS"
  962. --------N-21C4-------------------------------
  963. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD SET
  964.     AH = C4h
  965. Desc:    unlock all physical records in the log table and remove them from the
  966.       log table
  967. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  968.       Alloy NTNX
  969. SeeAlso: AH=BEh,AH=C1h,AH=D5h
  970. --------N-21C500-----------------------------
  971. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - OPEN SEMAPHORE
  972.     AX = C500h
  973.     DS:DX -> semaphore name (counted string, max 127 bytes)
  974.     CL = initial value for semaphore
  975. Return: AL = status
  976.         00h successful
  977.         BL = number of processes having semaphore open
  978.         CX:DX = semaphore handle
  979.         FEh invalid name length
  980.         FFh invalid semaphore value
  981. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  982.       Alloy NTNX
  983.     the semaphore's value is incremented by AX=C503h and decremented by
  984.       AX=C502h
  985. SeeAlso: AX=C501h,AX=C502h,AX=C503h,AX=C504h
  986. --------v-21C500-----------------------------
  987. INT 21 - VIRUS - "Sverdlov" - INSTALLATION CHECK
  988.     AX = C500h
  989. Return: AX = 6731h if resident
  990. SeeAlso: AX=C301h"VIRUS",AH=C6h"VIRUS"
  991. --------N-21C501-----------------------------
  992. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - EXAMINE SEMAPHORE
  993.     AX = C501h
  994.     CX:DX = semaphore handle
  995. Return: AL = status
  996.         00h successful
  997.         CX = semaphore value (-127 to 127)
  998.         DL = count of processes which have the semaphore open
  999.         FFh invalid handle
  1000. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  1001.       Alloy NTNX
  1002. SeeAlso: AX=C500h"NetWare",AX=C502h,AX=C504h
  1003. --------N-21C502-----------------------------
  1004. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - WAIT ON SEMAPHORE
  1005.     AX = C502h
  1006.     CX:DX = semaphore handle
  1007.     BP = timeout limit in timer ticks (1/18 sec)
  1008.         0000h return immediately if semaphore already zero or negative
  1009. Return: AL = status
  1010.         00h successful
  1011.         FEh timeout
  1012.         FFh invalid handle
  1013. Desc:    decrement the semaphore's value, optionally waiting until its value
  1014.       becomes positive before decrementing
  1015. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  1016.       Alloy NTNX
  1017. SeeAlso: AX=C500h"NetWare",AX=C501h,AX=C503h
  1018. --------N-21C503-----------------------------
  1019. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - SIGNAL SEMAPHORE
  1020.     AX = C503h
  1021.     CX:DX = semaphore handle
  1022. Return: AL = status
  1023.         00h successful
  1024.         01h semaphore value overflowed
  1025.         FFh invalid handle
  1026. Desc:    increment the semaphore's value and signal the first process (if any)
  1027.       in the queue waiting on the semaphore
  1028. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  1029.       Alloy NTNX
  1030. SeeAlso: AX=C500h"NetWare",AX=C502h
  1031. --------N-21C504-----------------------------
  1032. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLOSE SEMAPHORE
  1033.     AX = C504h
  1034.     CX:DX = semaphore handle
  1035. Return: AL = status
  1036.         00h successful
  1037.         FFh invalid handle
  1038. Desc:    decrement the semaphore's open count, and delete the semaphore if the
  1039.       count reaches zero
  1040. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  1041.       Alloy NTNX
  1042. SeeAlso: AX=C500h"NetWare",AX=C501h
  1043. --------N-21C6-------------------------------
  1044. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - GET OR SET LOCK MODE
  1045.     AH = C6h
  1046.     AL = subfunction
  1047.         00h set old "compatibility" mode (default)
  1048.         01h set new extended locks mode
  1049.         02h get lock mode
  1050. Return: AL = current lock mode
  1051. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  1052.       Alloy NTNX
  1053.     the locking mode should be 01h for NetWare 4.61+ and Advanced
  1054.       NetWare 1.0+ locking calls, and 00h for all older calls
  1055. SeeAlso: AH=BCh,AH=C4h,AH=D0h
  1056. --------v-21C6-------------------------------
  1057. INT 21 - VIRUS - "Socha" - INSTALLATION CHECK
  1058.     AH = C6h
  1059. Return: AL = 55h if resident
  1060. SeeAlso: AX=C500h"VIRUS",AX=C603h
  1061. --------v-21C603-----------------------------
  1062. INT 21 - VIRUS - "Yankee" or "MLTI" - INSTALLATION CHECK
  1063.     AX = C603h
  1064.     CF set
  1065. Return: CF clear if resident
  1066. SeeAlso: AX=C500h"VIRUS",AX=C700h"VIRUS"
  1067. --------N-21C700-----------------------------
  1068. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - BEGIN TRANSACTION
  1069.     AX = C700h
  1070. Return: CF clear if successful
  1071.         AL = 00h
  1072.     CF set on error
  1073.         AL = error code
  1074.         96h out of memory
  1075.         FEh implicit transaction already active, converted to explicit
  1076.         FFh explicit transaction already active
  1077. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1078. SeeAlso: AX=C701h,AX=C702h,AX=C703h
  1079. --------v-21C700-----------------------------
  1080. INT 21 - VIRUS - "MH-757" - INSTALLATION CHECK
  1081.     AX = C700h
  1082. Return: AL = 07h if resident
  1083. SeeAlso: AX=C603h"VIRUS",AH=CBh"VIRUS"
  1084. --------N-21C701-----------------------------
  1085. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - END TRANSACTION
  1086.     AX = C701h
  1087. Return: AL = status
  1088.         00h successful
  1089.         CX:DX = transaction number
  1090.         FDh transaction tracking disabled
  1091.         FEh transaction ended records locked
  1092.         FFh no explicit transaction active
  1093.     CF clear except when AL=FFh
  1094. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1095. SeeAlso: AX=C700h"NetWare",AX=C703h
  1096. --------N-21C702-----------------------------
  1097. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - INSTALLATION CHECK
  1098.     AX = C702h
  1099. Return: AL = status
  1100.         00h not available
  1101.         01h available
  1102.         FDh available but disabled
  1103. Desc:    determine whether the default file server supports TTS
  1104. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1105. --------N-21C703-----------------------------
  1106. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - ABORT TRANSACTION
  1107.     AX = C703h
  1108. Return: CF clear if successful
  1109.         AL = 00h
  1110.     CF set on error
  1111.         AL = error code
  1112.         FDh transaction tracking disabled, no backout
  1113.         FEh transaction ended records locked
  1114.         FFh no explicit transaction active
  1115. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1116. SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C704h
  1117. --------N-21C704-----------------------------
  1118. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - TRANSACTION STATUS
  1119.     AX = C704h
  1120.     CX:DX = transaction number (see AX=C701h)
  1121. Return: AL = status
  1122.         00h successful
  1123.         FFh not yet written to disk
  1124. Desc:    verify that a transaction has actually been written to disk
  1125. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1126.     transactions are written to disk in the order in which they are ended,
  1127.       but it may take as much as five seconds for the data to be written
  1128. SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C703h
  1129. --------N-21C705-----------------------------
  1130. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET APPLICTN THRESHOLDS
  1131.     AX = C705h
  1132. Return: AL = status
  1133.         00h successful
  1134.     CL = maximum logical record locks (default 0)
  1135.     CH = maximum physical record locks (default 0)
  1136. Desc:    get the per-application limits on record locks allowed before an
  1137.       implicit transaction is begun
  1138. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1139.     if either limit is FFh, implicit transactions are disabled for the
  1140.       corresponding lock type
  1141. SeeAlso: AX=C706h,AX=C707h
  1142. --------N-21C706-----------------------------
  1143. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET APPLICTN THRESHOLDS
  1144.     AX = C706h
  1145.     CL = maximum logical record locks (default 0)
  1146.     CH = maximum physical record locks (default 0)
  1147. Return: AL = status
  1148.         00h successful
  1149. Desc:    specify the per-application limits on record locks allowed before an
  1150.       implicit transaction is begun
  1151. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1152.     if either limit is set to FFh, implicit transactions are disabled for
  1153.       the corresponding lock type
  1154. SeeAlso: AX=C705h,AX=C708h
  1155. --------N-21C707-----------------------------
  1156. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET WORKSTN THRESHOLDS
  1157.     AX = C707h
  1158. Return: AL = status
  1159.         00h successful
  1160.     CL = maximum logical record locks (default 0)
  1161.     CH = maximum physical record locks (default 0)
  1162. Desc:    get the per-workstation limits on record locks allowed before an
  1163.       implicit transaction is begun
  1164. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1165.     if either limit is FFh, implicit transactions are disabled for the
  1166.       corresponding lock type
  1167. SeeAlso: AX=C705h,AX=C708h
  1168. --------N-21C708-----------------------------
  1169. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET WORKSTN THRESHOLDS
  1170.     AX = C708h
  1171.     CL = maximum logical record locks (default 0)
  1172.     CH = maximum physical record locks (default 0)
  1173. Return: AL = status
  1174.         00h successful
  1175. Desc:    specify the per-workstation limits on record locks allowed before an
  1176.       implicit transaction is begun
  1177. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1178.     if either limit is set to FFh, implicit transactions are disabled for
  1179.       the corresponding lock type
  1180. SeeAlso: AX=C706h,AX=C707h
  1181. --------N-21C8-------------------------------
  1182. INT 21 O - Novell NetWare - BEGIN LOGICAL FILE LOCKING
  1183.     AH = C8h
  1184.     if function C6h lock mode 00h:
  1185.         DL = mode
  1186.         00h no wait
  1187.         01h wait
  1188.     if function C6h lock mode 01h:
  1189.         BP = timeout in timer ticks (1/18 sec)
  1190. Return: AL = error code
  1191. Desc:    used to provide TTS support for applications which are not aware of
  1192.       Novell's Transaction Tracking System
  1193. Note:    this function was added in NetWare 4.0, but was removed some time prior
  1194.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  1195.       documentation
  1196. SeeAlso: AH=C9h
  1197. --------N-21C9-------------------------------
  1198. INT 21 O - Novell NetWare - END LOGICAL FILE LOCKING
  1199.     AH = C9h
  1200. Return: AL = error code
  1201. Desc:    used to provide TTS support for applications which are not aware of
  1202.       Novell's Transaction Tracking System
  1203. Note:    this function was added in NetWare 4.0, but was removed some time prior
  1204.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  1205.       documentation
  1206. SeeAlso: AH=C8h
  1207. --------N-21CA-------------------------------
  1208. INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK PERSONAL FILE (FCB)
  1209.     AH = CAh
  1210.     DS:DX -> FCB (see AH=0Fh)
  1211.     if function C6h lock mode 01h:
  1212.         AL = log and lock flag
  1213.         00h log file only
  1214.         01h lock as well as log file
  1215.         BP = lock timeout in timer ticks (1/18 sec)
  1216. Return: AL = error code
  1217.         00h successful
  1218.         96h no dynamic memory for file
  1219.         FEh timeout
  1220.         FFh failed
  1221. Desc:    provides file locking support for FCBs
  1222. Note:    this function was added in NetWare 4.0, but was removed some time prior
  1223.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  1224.       documentation
  1225. SeeAlso: AH=CBh
  1226. --------v-21CA15-----------------------------
  1227. INT 21 - VIRUS - "Piter" - ???
  1228.     AX = CA15h
  1229.     ???
  1230. Return: ???
  1231. SeeAlso: AH=CCh"VIRUS"
  1232. --------N-21CB-------------------------------
  1233. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK FILE SET
  1234.     AH = CBh
  1235.     if function C6h lock mode 00h:
  1236.         DL = mode
  1237.         00h no wait
  1238.         01h wait
  1239.     if function C6h lock mode 01h:
  1240.         BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  1241. Return: AL = status
  1242.         00h successful
  1243.         FEh timed out
  1244.         FFh failed
  1245. Desc:    attempt to lock all files listed in the log table
  1246. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1247.       Alloy NTNX
  1248.     status FFh will be returned if one or more of the files have already
  1249.       been exclusively locked by another process
  1250. SeeAlso: AH=CAh,AH=CDh,AH=D1h,AH=EBh
  1251. --------v-21CB-------------------------------
  1252. INT 21 - VIRUS - "Milous" - INSTALLATION CHECK
  1253.     AH = CBh
  1254. Return: AL = 07h if resident
  1255. SeeAlso: AX=C700h"VIRUS",AX=CB02h
  1256. --------v-21CB02-----------------------------
  1257. INT 21 - VIRUS - "Witcode" - INSTALLATION CHECK
  1258.     AX = CB02h
  1259. Return: AX = 02CBh if resident
  1260. SeeAlso: AH=CBh"VIRUS",AH=CCh"VIRUS"
  1261. --------N-21CC-------------------------------
  1262. INT 21 O - Novell NetWare, Alloy NTNX - RELEASE FILE (FCB)
  1263.     AH = CCh
  1264.     DS:DX -> FCB (see AH=0Fh)
  1265. Return: none
  1266. Desc:    unlocks file, but does not remove it from the log table or close it
  1267. Note:    this function was added in NetWare 4.0, but was removed some time prior
  1268.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  1269.       documentation
  1270. SeeAlso: AH=CAh,AH=CDh
  1271. --------v-21CC-------------------------------
  1272. INT 21 - VIRUS - "Westwood" - INSTALLATION CHECK
  1273.     AH = CCh
  1274. Return: AX = 0700h if resident
  1275. SeeAlso: AX=CB02h,AH=CDh"VIRUS",AX=D000h"VIRUS"
  1276. --------N-21CD-------------------------------
  1277. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE SET
  1278.     AH = CDh
  1279. Return: none
  1280. Desc:    unlock all files listed in the log table, but don't remove them from
  1281.       the table
  1282. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1283.       Alloy NTNX
  1284. SeeAlso: AH=CBh,AH=CCh,AH=CFh,AH=D3h
  1285. --------v-21CD-------------------------------
  1286. INT 21 - VIRUS - "Westwood" - ???
  1287.     AH = CDh
  1288.     ???
  1289. Return: ???
  1290. SeeAlso: AH=CCh"VIRUS"
  1291. --------N-21CE-------------------------------
  1292. INT 21 O - Novell NetWare, Alloy NTNX - CLEAR FILE (FCB)
  1293.     AH = CEh
  1294.     DS:DX -> FCB (see AH=0Fh)
  1295. Return: AL = error code
  1296. Desc:    unlocks file and removes it from log table, then closes all opened and
  1297.       logged occurrences
  1298. Note:    this function was added in NetWare 4.0, but was removed some time prior
  1299.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  1300.       documentation
  1301. SeeAlso: AH=CAh,AH=CFh,AH=EDh"NetWare"
  1302. --------N-21CF-------------------------------
  1303. INT 21 - LANstep - ???
  1304.     AH = CFh
  1305.     ???
  1306. Return: ???
  1307. Program: LANstep is a redesign of the Waterloo Microsystems PORT network
  1308. --------N-21CF-------------------------------
  1309. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE SET
  1310.     AH = CFh
  1311. Return: AL = 00h
  1312. Desc:    unlock and remove all files from log table
  1313. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1314.       Alloy NTNX
  1315. SeeAlso: AH=CAh,AH=CEh,AH=EBh"NetWare"
  1316. --------N-21D0-------------------------------
  1317. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG LOGICAL RECORD
  1318.     AH = D0h
  1319.     DS:DX -> record string (counted string, max 99 data bytes)
  1320.     if function C6h lock mode 01h: (Novell, NTNX only)
  1321.         AL = flags
  1322.         bit 0: lock as well as log the record
  1323.         bit 1: non-exclusive lock
  1324.         BP = lock timeout in timer ticks (1/18 sec)
  1325. Return: AL = status
  1326.         00h successful
  1327.         96h no dynamic memory for file
  1328.         FEh timed out
  1329.         FFh unsuccessful
  1330. Desc:    add the specified logical record name to the log table, and optionally
  1331.       lock the record
  1332. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
  1333.       Banyan VINES, and Alloy NTNX
  1334.     locks on logical record names are advisory and may be ignored by other
  1335.       applications
  1336. SeeAlso: AH=BCh,AH=D1h,AH=D2h,AH=D4h,AH=EBh
  1337. --------v-21D000-----------------------------
  1338. INT 21 - VIRUS - "Fellowship" - INSTALLATION CHECK
  1339.     AX = D000h
  1340. Return: BX = 1234h if resident
  1341. SeeAlso: AH=CCh"VIRUS",AH=D5h"VIRUS",AX=D5AAh
  1342. --------N-21D1-------------------------------
  1343. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK LOGICAL RECORD SET
  1344.     AH = D1h
  1345.     AL = lock type (00h exclusive, 01h shareable)
  1346.     if function C6h lock mode 00h:
  1347.         DL = mode
  1348.         00h no wait
  1349.         01h wait
  1350.     if function C6h lock mode 01h: (Novell only)
  1351.        BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  1352.         0000h no wait
  1353. Return: AL = status (see AH=CBh)
  1354. Desc:    attempt to lock all logical record names listed in the log table
  1355. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
  1356.       Banyan VINES, and Alloy NTNX
  1357.     status FFh will be returned if one or more logical records have been
  1358.       exclusively locked by another process
  1359.     locks on logical record names are advisory and may be ignored by other
  1360.       applications
  1361. SeeAlso: AH=C2h,AH=CBh,AH=D0h,AH=D3h,AH=D5h
  1362. --------N-21D2-------------------------------
  1363. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD
  1364.     AH = D2h
  1365.     DS:DX -> semaphore identifier (counted string up to 99 chars long)
  1366. Return: AL = status
  1367.         00h successful
  1368.         FFh no such record
  1369. Desc:    unlock the logical record name but do not remove it from the log table
  1370. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  1371.       Banyan VINES, and Alloy NTNX
  1372.     locks on logical record names are advisory and may be ignored by other
  1373.       applications
  1374. SeeAlso: AH=BDh,AH=D0h,AH=D3h,AH=D4h
  1375. --------N-21D3-------------------------------
  1376. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD SET
  1377.     AH = D3h
  1378. Desc:    unlock all currently-locked logical record names in the log table, but
  1379.       do not remove them from the table
  1380. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  1381.       Banyan VINES, and Alloy NTNX
  1382.     locks on logical record names are advisory and may be ignored by other
  1383.       applications
  1384. SeeAlso: AH=C3h,AH=CDh,AH=D1h,AH=D2h,AH=D5h
  1385. --------N-21D4-------------------------------
  1386. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD
  1387.     AH = D4h
  1388.     DS:DX -> logical record name (counted string up to 99 chars long)
  1389. Return: AL = status
  1390.         00h successful
  1391.         FFh no such record name
  1392. Desc:    unlock and remove the logical record name from the log table
  1393. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  1394.       Banyan VINES, and Alloy NTNX
  1395.     locks on logical record names are advisory and may be ignored by other
  1396.       applications
  1397. SeeAlso: AH=BEh,AH=D0h,AH=D2h,AH=D5h
  1398. --------N-21D5-------------------------------
  1399. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD SET
  1400.     AH = D5h
  1401. Return: AL = error code (see AH=D4h)
  1402. Desc:    unlock and remove all logical record name from the log table
  1403. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  1404.       Banyan VINES, and Alloy NTNX
  1405.     locks on logical record names are advisory and may be ignored by other
  1406.       applications
  1407. SeeAlso: AH=D1h,AH=D3h,AH=D4h
  1408. --------v-21D5-------------------------------
  1409. INT 21 - VIRUS - "Carfield" - ???
  1410.     AH = D5h
  1411.     ???
  1412. Return: ???
  1413. SeeAlso: AX=D5AAh,AH=F3h"Carfield"
  1414. --------v-21D5AA-----------------------------
  1415. INT 21 - VIRUS - "Diamond-A", "Diamond-B" - INSTALLATION CHECK
  1416.     AX = D5AAh
  1417. Return: AX = 2A55h if "Diamond-A" resident
  1418.     AX = 2A03h if "Diamond-B"-family virus resident
  1419. SeeAlso: AX=D000h,AH=D5h"VIRUS",AX=D5AAh/BP=DEAAh
  1420. --------v-21D5AABPDEAA-----------------------
  1421. INT 21 - VIRUS - "Dir" - INSTALLATION CHECK
  1422.     AX = D5AAh
  1423.     BP = DEAAh
  1424. Return: SI = 4321h if resident
  1425. SeeAlso: AX=D5AAh,AX=DADAh"VIRUS"
  1426. --------N-21D6-------------------------------
  1427. INT 21 - Novell NetWare - WORKSTATION - END OF JOB
  1428.     AH = D6h
  1429.     BX = job flag (0000h current job, FFFFh all processes on workstation)
  1430. Return: AL = error code
  1431. Desc:    unlocks and clears all locked or logged files and records held by the
  1432.       process(es), closes all files, resets error and lock modes, and
  1433.       releases all network resources
  1434. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1435.       Alloy NTNX
  1436. SeeAlso: AH=BBh,AH=D7h
  1437. --------N-21D7-------------------------------
  1438. INT 21 - Novell NetWare - CONNECTION SERVICES - SYSTEM LOGOUT
  1439.     AH = D7h
  1440. Return: AL = error code
  1441. Desc:    this function closes the caller's open files, logs it out from all
  1442.       file servers, detaches the workstation from all non-default file
  1443.       servers, and maps a drive to the default server's SYS:LOGIN directory
  1444. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1445.       Alloy NTNX
  1446. SeeAlso: AH=D6h,AH=E3h/SF=14h,AH=F1h
  1447. --------N-21D8-------------------------------
  1448. INT 21 - Novell NetWare, Banyan VINES - ALLOCATE RESOURCE
  1449.     AH = D8h
  1450.     DL = resource number
  1451. Return: AL = status
  1452.         00h successful
  1453.         FFh unsucessful
  1454. Note:    this function is no longer used or supported by NetWare, and is not
  1455.       documented in Novell documents
  1456. SeeAlso: AH=D9h
  1457. --------N-21D9-------------------------------
  1458. INT 21 - Novell NetWare, Banyan VINES - DEALLOCATE RESOURCE
  1459.     AH = D9h
  1460.     DL = resource number
  1461. Return: AL = status (see AH=D8h)
  1462. Note:    this function is no longer used or supported by NetWare, and is not
  1463.       documented in Novell documents
  1464. SeeAlso: AH=D8h
  1465. --------N-21DA-------------------------------
  1466. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH NUMBER
  1467.     AH = DAh
  1468.     DL = volume number
  1469.     ES:DI -> reply buffer (see below)
  1470. Return: AL = 00h
  1471. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1472.     operator console rights are not required to make this call
  1473.     reported total blocks and total unused blocks include the Hot Fix
  1474.       Table; the NetWare shell's implementation of INT 21/AH=36h will
  1475.       report values larger than 268MB as 268MB.
  1476. SeeAlso: AH=36h,AH=E2h/SF=15h,AH=E3h/SF=E9h
  1477.  
  1478. Format of reply buffer:
  1479. Offset    Size    Description
  1480.  00h    WORD    sectors/block
  1481.  02h    WORD    total blocks on volume
  1482.  04h    WORD    unused blocks
  1483.  06h    WORD    total directory entries
  1484.  08h    WORD    unused directory entries
  1485.  0Ah 16 BYTEs    volume name, null padded
  1486.  1Ah    WORD    removable flag, 0000h = not removable
  1487. Note:    all words are big-endian
  1488. --------v-21DADA-----------------------------
  1489. INT 21 - VIRUS - "Gotcha" - INSTALLATION CHECK
  1490.     AX = DADAh
  1491. Return: AH = A5h
  1492. SeeAlso: AX=D5AAh,AX=DAFEh"VIRUS"
  1493. --------v-21DAFE-----------------------------
  1494. INT 21 - VIRUS - "Plovdiv 1.3" - INSTALLATION CHECK
  1495.     AX = DAFEh
  1496. Return: AX = 1234h if resident
  1497. SeeAlso: AX=DADAh,AH=DDh"VIRUS",AH=DEh"VIRUS"
  1498. --------N-21DB-------------------------------
  1499. INT 21 - Novell NetWare - WORKSTATION - GET NUMBER OF LOCAL DRIVES
  1500.     AH = DBh
  1501. Return: AL = number of local disks as set by LASTDRIVE in CONFIG.SYS
  1502. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1503.       Alloy NTNX
  1504. SeeAlso: AH=0Eh
  1505. --------N-21DC-------------------------------
  1506. INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION NUMBER
  1507.     AH = DCh
  1508. Return: AL = logical connection number
  1509.         00h if NetWare not loaded or this machine is a non-dedicated server
  1510.     CX = station number in ASCII (CL = first digit)
  1511. Notes:    this function is supported by NetWare 4.0+, Banyan VINES, and Alloy
  1512.       NTNX
  1513.     station number only unique for those PCs connected to same semaphore
  1514.       service
  1515. SeeAlso: AH=F2h"NetWare"
  1516. --------d-21DC-------------------------------
  1517. INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF
  1518.     AH = DCh
  1519.     DX = state
  1520.         0000h turn on
  1521.         0001h turn off
  1522. SeeAlso: AX=FEDCh
  1523. --------N-21DD-------------------------------
  1524. INT 21 - Novell NetWare - WORKSTATION - SET NetWare ERROR MODE
  1525.     AH = DDh
  1526.     DL = error mode
  1527.         00h invoke INT 24 on critical I/O errors (default)
  1528.         01h return NetWare extended error code in AL
  1529.         02h return error code in AL, mapped to standard DOS error codes
  1530. Return: AL = previous error mode
  1531. Note:    this function is supported by Advanced NetWare 2.0+
  1532. SeeAlso: INT 24
  1533. --------v-21DD-------------------------------
  1534. INT 21 - VIRUS - "Jerusalem"-family - RELOCATE VIRUS???
  1535.     AH = DDh
  1536.     CX = number of bytes to copy
  1537.     DS:SI -> source of copy
  1538.     ES:DI -> destination of copy
  1539. Return: does not return normally; return address is caller's CS:0100h with
  1540.       AX = ???
  1541. SeeAlso: AH=E0h"VIRUS",AH=EEh"VIRUS"
  1542. --------v-21DE-------------------------------
  1543. INT 21 - VIRUS - "Durban" - INSTALLATION CHECK
  1544.     AH = DEh
  1545. Return: AH = DFh if resident
  1546. SeeAlso: AX=DAFEh,AX=DEDEh"VIRUS"
  1547. --------v-21DE-------------------------------
  1548. INT 21 - VIRUS - "April 1st EXE" - ???
  1549.     AH = DEh
  1550.     ???
  1551. Return: ???
  1552. --------N-21DE-------------------------------
  1553. INT 21 - Novell NetWare - MESSAGE SERVICES - SET BROADCAST MODE
  1554.     AH = DEh
  1555.     DL = broadcast mode
  1556.         00h receive server and workstation broadcasts (default)
  1557.         01h receive server broadcasts, discard user messages
  1558.         02h store server broadcasts for retrieval
  1559.         03h store all broadcasts for retrieval
  1560. Return: AL = new broadcast mode
  1561. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1562. --------N-21DE--DL04-------------------------
  1563. INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MODE
  1564.     AH = DEh
  1565.     DL = 04h
  1566. Return: AL = current broadcast mode
  1567.         00h receive server and workstation broadcasts (default)
  1568.         01h receive server broadcasts, discard user message
  1569.         02h store server broadcasts for retrieval
  1570.         03h store all broadcasts for retrieval
  1571. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1572. --------N-21DE-------------------------------
  1573. INT 21 - Novell NetWare - SHELL TIMER INTERRUPT CHECKS
  1574.     AH = DEh
  1575.     DL = function
  1576.         05h disable shell timer interrupt checks
  1577.         06h enable shell timer interrupt checks
  1578. Return: ???
  1579. Note:    this function was added in NetWare 4.0, but is not listed in current
  1580.       Novell documentation and is probably no longer supported
  1581. --------v-21DEDE-----------------------------
  1582. INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK
  1583.     AX = DEDEh
  1584. Return: AH = 41h if resident
  1585. SeeAlso: AH=DEh"VIRUS",AH=E0h"VIRUS"
  1586. --------N-21DF--DL00-------------------------
  1587. INT 21 - Novell NetWare - PRINT SERVICES - START LPT CAPTURE
  1588.     AH = DFh
  1589.     DL = 00h
  1590. Return: AL = status
  1591.         00h successful
  1592. Desc:    this function redirects the default LPT to a capture file on the file
  1593.       server
  1594. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1595.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  1596.     a print job is queued when the first character of output is captured
  1597. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=03h
  1598. SeeAlso: AH=DFh/DL=04h,AX=F003h
  1599. --------N-21DF--DL01-------------------------
  1600. INT 21 - Novell NetWare - PRINT SERVICES - END LPT CAPTURE
  1601.     AH = DFh
  1602.     DL = 01h
  1603. Return: AL = status
  1604.         00h successful
  1605. Desc:    stop redirecting the default LPT, close the capture file, and release
  1606.       the job in the print queue for printing
  1607. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1608.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  1609.     after this call, the default LPT defaults to local printing
  1610. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=02h,AH=DFh/DL=03h,AH=DFh/DL=05h
  1611. --------N-21DF--DL02-------------------------
  1612. INT 21 - Novell NetWare - PRINT SERVICES - CANCEL LPT CAPTURE
  1613.     AH = DFh
  1614.     DL = 02h
  1615. Return: AL = status
  1616.         00h successful
  1617. Desc:    this function ends the capture of the default LPT, removes the job from
  1618.       the print queue, and deletes the capture file unless it is a
  1619.       permanent capture file
  1620. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1621.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  1622.     after this call, the default LPT defaults to local printing
  1623. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=06h
  1624. --------N-21DF--DL03-------------------------
  1625. INT 21 - Novell NetWare - PRINT SERVICES - FLUSH LPT CAPTURE
  1626.     AH = DFh
  1627.     DL = 03h
  1628. Return: AL = status
  1629.         00h successful
  1630. Desc:    this function closes the current capture file for the default LPT
  1631.       and starts printing it if it is not a permanent capture file
  1632. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1633.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  1634.     if more data is sent to the LPT port after this call, a new capture
  1635.       file will be opeend
  1636. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=07h
  1637. --------N-21DF--DL04-------------------------
  1638. INT 21 - Novell NetWare - PRINT SERVICES - START SPECIFIC LPT CAPTURE
  1639.     AH = DFh
  1640.     DL = 04h
  1641.     DH = LPT port (00h-02h)
  1642. Return: AL = status
  1643.         00h successful
  1644. Desc:    this function redirects the specified LPT to a capture file on the file
  1645.       server
  1646. Notes:    this function is supported by Advanced NetWare 2.1+
  1647.     a print job is queued when the first character of output is captured
  1648. SeeAlso: AX=B800h,AH=DFh/DL=00h,AH=DFh/DL=05h,AH=DFh/DL=06h,AH=DFh/DL=07h
  1649. SeeAlso: AX=F003h
  1650. --------N-21DF--DL05-------------------------
  1651. INT 21 - Novell NetWare - PRINT SERVICES - END SPECIFIC LPT CAPTURE
  1652.     AH = DFh
  1653.     DL = 05h
  1654.     DH = LPT port (00h-02h)
  1655. Return: AL = status
  1656.         00h successful
  1657. Desc:    stop redirecting the specified LPT, close the capture file, and release
  1658.       the job in the print queue for printing
  1659. Notes:    this function is supported by Advanced NetWare 2.1+
  1660.     after this call, the specified LPT defaults to local printing
  1661. SeeAlso: AH=DFh/DL=01h,AH=DFh/DL=04h,AH=DFh/DL=06h,AH=DFh/DL=07h
  1662. --------N-21DF--DL06-------------------------
  1663. INT 21 - Novell NetWare - PRINT SERVICES - CANCEL SPECIFIC LPT CAPTURE
  1664.     AH = DFh
  1665.     DL = 06h
  1666.     DH = LPT port (00h-02h)
  1667. Return: AL = status
  1668.         00h successful
  1669. Desc:    this function ends the capture of the specified LPT, removes the job
  1670.       from the print queue, and deletes the capture file unless it is a
  1671.       permanent capture file
  1672. Notes:    this function is supported by Advanced NetWare 2.1+
  1673.     after this call, the specified LPT defaults to local printing
  1674. SeeAlso: AH=DFh/DL=02h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=07h
  1675. --------N-21DF--DL07-------------------------
  1676. INT 21 - Novell NetWare - PRINT SERVICES - FLUSH SPECIFIC LPT CAPTURE
  1677.     AH = DFh
  1678.     DL = 07h
  1679.     DH = LPT port (00h-02h)
  1680. Return: AL = status
  1681.         00h successful
  1682. Desc:    this function closes the current capture file for the specified LPT
  1683.       and starts printing it if it is not a permanent capture file
  1684. Notes:    this function is supported by Advanced NetWare 2.1+
  1685.     if more data is sent to the LPT port after this call, a new capture
  1686.       file will be opeend
  1687. SeeAlso: AH=DFh/DL=03h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=06h
  1688. --------T-21DF00DX534C-----------------------
  1689. INT 21 U - Software Carousel - INSTALLATION CHECK
  1690.     AX = DF00h
  1691.     DX = 534Ch ("SL")
  1692.     DI = 534Ch ("SL")
  1693. Return: AX = 00FFh if installed
  1694.         ???
  1695. Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
  1696. --------T-21DF01-----------------------------
  1697. INT 21 - Software Carousel - SWITCH TO ANOTHER TASK
  1698.     AX = DF01h
  1699.     BL = task number (00h = next task)
  1700. Return: AL = status
  1701.         00h Carousel not running
  1702.         01h successful
  1703.         FFh unsucessful
  1704.         AH = error code (01h,02h) (see below)
  1705.  
  1706. Values for error code:
  1707.  00h    invalid subfunction in AL
  1708.  01h    invalid task number
  1709.  02h    tried to switch to task with no memory size
  1710.  03h    tried to kill program in partition with no program running
  1711.  04h    tried to change size of an active memory partition
  1712.  05h    invalid memory size
  1713.  06h    tried to send command to task with a pending previous command
  1714. --------T-21DF02-----------------------------
  1715. INT 21 - Software Carousel - KILL PROGRAM IN MEMORY PARTITION
  1716.     AX = DF02h
  1717.     BL = task number
  1718. Return: AL = status
  1719.         00h Carousel not running
  1720.         01h successful
  1721.         FFh unsucessful
  1722.         AH = error code (01h,03h) (see AX=DF01h)
  1723. --------T-21DF03-----------------------------
  1724. INT 21 - Software Carousel - GET PARTITION SIZE AND PROGRAM STATUS
  1725.     AX = DF03h
  1726.     BL = task number
  1727. Return: AL = status
  1728.         00h Carousel not running
  1729.         01h successful
  1730.         BL = partition state (00h no program running, 01h prog running)
  1731.         DX = partition size in KB
  1732.         FFh unsucessful
  1733.         AH = error code (01h) (see AX=DF01h)
  1734. SeeAlso: AX=DF05h
  1735. --------T-21DF04-----------------------------
  1736. INT 21 - Software Carousel - GET PARTITION NAME
  1737.     AX = DF04h
  1738.     BL = task number
  1739. Return: AL = status
  1740.         00h Carousel not running
  1741.         01h successful
  1742.         CX = length of name (00h if default partition name)
  1743.         ES:BX -> partition name (if CX nonzero)
  1744.         FFh unsucessful
  1745.         AH = error code (01h) (see AX=DF01h)
  1746. SeeAlso: AX=DF06h
  1747. --------T-21DF05-----------------------------
  1748. INT 21 - Software Carousel - CHANGE PARTITION SIZE
  1749.     AX = DF05h
  1750.     BL = task number
  1751.     DX = new size in KB
  1752. Return: AL = status
  1753.         00h Carousel not running
  1754.         01h successful
  1755.         FFh unsucessful
  1756.         AH = error code (01h,04h,05h) (see AX=DF01h)
  1757.     BX = minimum size allowed
  1758.     CX = maximum size available
  1759. SeeAlso: AX=DF03h
  1760. --------T-21DF06-----------------------------
  1761. INT 21 - Software Carousel - CHANGE PARTITION NAME
  1762.     AX = DF06h
  1763.     BL = task number
  1764.     CX = length of new name (00h to use default, max 18h)
  1765.     DS:SI -> new name
  1766. Return: AL = status
  1767.         00h Carousel not running
  1768.         01h successful
  1769.         FFh unsucessful
  1770.         AH = error code (01h) (see AX=DF01h)
  1771. SeeAlso: AX=DF04h
  1772. --------T-21DF07-----------------------------
  1773. INT 21 - Software Carousel - SEND COMMAND TO MEMORY SECTION
  1774.     AX = DF07h
  1775.     BL = task number
  1776.     CX = length of command (max 8 chars)
  1777.     DS:SI -> command line
  1778. Return: AL = status
  1779.         00h Carousel not running
  1780.         01h successful
  1781.         FFh unsucessful
  1782.         AH = error code (01h,06h) (see AX=DF01h)
  1783. Note:    the maximum length seems too small and may be a typo for 80 characters
  1784. --------T-21DF08-----------------------------
  1785. INT 21 - Software Carousel - SELECTIVELY ENABLE/DISABLE MENU AND SWITCHING
  1786.     AX = DF08h
  1787.     BL = new state of keyboard (00h disabled, 01h enabled)
  1788. Return: AL = status
  1789.         00h Carousel not running
  1790.         01h successful
  1791. Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
  1792. Note:    when the keyboard is is disabled, the user may neither access the
  1793.       Carousel menu nor switch to another memory section
  1794. --------T-21DF09-----------------------------
  1795. INT 21 - Software Carousel - BOOT THE SYSTEM
  1796.     AX = DF09h
  1797. Return: AL = status
  1798.         00h Carousel not running
  1799.         FFh unsucessful
  1800.         AH = error code (01h,03h) (see AX=DF01h)
  1801. Note:    this function never returns is successful
  1802. --------T-21DF0A-----------------------------
  1803. INT 21 - Software Carousel - GET MEMORY SIZE/PARTITION NUMBER OF CURRENT TASK
  1804.     AX = DF0Ah
  1805. Return: AL = status
  1806.         00h Carousel not running
  1807.         01h successful
  1808.         BL = task number
  1809.         DX = memory size in KB
  1810.         FFh unsucessful
  1811.         AH = error code (01h,03h) (see AX=DF01h)
  1812. --------T-21DF0B-----------------------------
  1813. INT 21 - Software Carousel - SET TASK SWITCH CALLBACK
  1814.     AX = DF0Bh
  1815.     BH = interrupt number or 00h
  1816.     BL = function number to invoke on partition switch
  1817.     CL = function number to call when it is safe for resident programs
  1818.         to perform DOS calls
  1819.     DS:DX -> FAR function to call if BH=00h
  1820. Return: AL = status
  1821.         00h Carousel not running
  1822.         01h successful
  1823.         FFh unsucessful
  1824.         AH = error code (01h,03h) (see AX=DF01h)
  1825. Notes:    the specified interrupt or FAR function is called with AH set to the
  1826.       appropriate one of the values specified in BL and CL, and BL set to
  1827.       the new task number
  1828.     the function specified by CL will not be called until the notification
  1829.       is enabled with AX=DF0Ch
  1830. SeeAlso: AX=DF0Ch
  1831. --------T-21DF0C-----------------------------
  1832. INT 21 - Software Carousel - ENABLE DOS-CALL SAFETY NOTIFICATION
  1833.     AX = DF0Ch
  1834. Return: AL = status
  1835.         00h Carousel not running
  1836.         01h successful
  1837. Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
  1838. SeeAlso: AX=DF0Bh
  1839. --------O-21E0-------------------------------
  1840. INT 21 - Digital Research DOS Plus - CALL BDOS
  1841.     AH = E0h
  1842.     CL = BDOS function number (see INT E0"CP/M")
  1843.     other registers as appropriate for function
  1844. Return: as appropriate for function
  1845. SeeAlso: AX=4459h,INT E0"CP/M"
  1846. --------E-21E0-------------------------------
  1847. INT 21 - OS/286, OS/386 - INITIALIZE REAL PROCEDURE
  1848.     AH = E0h
  1849.     ???
  1850. Return: ???
  1851. SeeAlso: AH=E1h"OS/286"
  1852. --------T-21E0-------------------------------
  1853. INT 21 - DoubleDOS - MENU CONTROL
  1854.     AH = E0h
  1855.     AL = subfunction
  1856.         01h exchange tasks
  1857.         73h resume invisible job if suspended
  1858.         74h kill other job
  1859.         75h suspend invisible job
  1860. Note:    identical to AH=F0h
  1861. SeeAlso: AH=F0h"DoubleDOS"
  1862. --------v-21E0-------------------------------
  1863. INT 21 - VIRUS - "Jerusalem", "Armagedon" - INSTALLATION CHECK
  1864.     AH = E0h
  1865. Return: AX = 0300h if "Jerusalem" resident
  1866.     AX = DADAh if "Armagedon" resident
  1867. SeeAlso: AH=DEh"VIRUS",AX=DEDEh"VIRUS",AX=E00Fh
  1868. --------N-21E0-------------------------------
  1869. INT 21 - Novell NetWare, Alloy NTNX - PRINT SPOOLING
  1870.     AH = E0h
  1871.     DS:SI -> request buffer (see below)
  1872.     ES:DI -> reply buffer
  1873. Return: AL = status
  1874. Note:    this function was added in NetWare 4.0, but is no longer listed in
  1875.       current Novell documentation and may no longer be supported
  1876. SeeAlso: AH-E3h/SF=68h
  1877.  
  1878. Format of request buffer:
  1879. Offset    Size    Description
  1880.  00h    WORD    length of following data
  1881.  02h    BYTE    subfunction
  1882.         00h spool data to a capture file
  1883.         01h close and queue capture file
  1884.         02h set spool flags
  1885.         03h spool existing file
  1886.         04h get spool queue entry
  1887.         05h remove entry from spool queue
  1888.  03h    ???
  1889. --------N-21E0--SF06-------------------------
  1890. INT 21 - Novell NetWare - PRINT SERVICES - GET PRINTER STATUS
  1891.     AH = E0h subfn 06h
  1892.     DS:SI -> request buffer (see below)
  1893.     ES:DI -> reply buffer (see below)
  1894. Return: AL = status
  1895.         00h successful
  1896.         FFh no such printer
  1897. Desc:    get current state of specified printer attached to the server
  1898. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1899.       Alloy NTNX
  1900.  
  1901. Format of request buffer:
  1902. Offset    Size    Description
  1903.  00h    WORD    0002h (length of following data)
  1904.  02h    BYTE    06h (subfunction "Get Printer Status")
  1905.  03h    BYTE    printer number (00h-04h)
  1906.  
  1907. Format of reply buffer:
  1908. Offset    Size    Description
  1909.  00h    WORD    (call) 0004h (size of following results buffer)
  1910.  02h    BYTE    flag: 00h printer active, FFh printer halted
  1911.  03h    BYTE    flag: 00h printer online, 01h printer offline
  1912.  04h    BYTE    current form type
  1913.  05h    BYTE    target printer number (00h-04h)
  1914.         same as number in request buffer unless rerouted by server
  1915.         console
  1916. --------N-21E0--SF09-------------------------
  1917. INT 21 - Novell NetWare - PRINT SERVICES - SPECIFY CAPTURE FILE
  1918.     AH = E0h subfn 09h
  1919.     DS:SI -> request buffer (see below)
  1920.     ES:DI -> reply buffer (see below)
  1921. Return: AL = status
  1922.         00h successful
  1923.         9Ch invalid path
  1924. Desc:    create a permanent capture file for the next print capture to be
  1925.       started
  1926. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1927.       Alloy NTNX
  1928.     the caller must have read, write, and create rights for the directory
  1929.       containing the capture file
  1930.  
  1931. Format of request buffer:
  1932. Offset    Size    Description
  1933.  00h    WORD    length of following data (max 102h)
  1934.  02h    BYTE    09h (subfunction "Specify Capture File")
  1935.  03h    BYTE    directory handle or 00h
  1936.  04h    BYTE    length of filename
  1937.  05h  N BYTEs    name of capture file
  1938.  
  1939. Format of reply buffer:
  1940. Offset    Size    Description
  1941.  00h    WORD    (call) 0000h (no results returned)
  1942. --------v-21E00F-----------------------------
  1943. INT 21 - VIRUS - "8-tunes" - INSTALLATION CHECK
  1944.     AX = E00Fh
  1945. Return: AX = 4C31h if resident
  1946. SeeAlso: AH=E0h"VIRUS",AH=E1h"VIRUS"
  1947. --------E-21E1-------------------------------
  1948. INT 21 - OS/286, OS/386 - ISSUE REAL PROCEDURE CALL
  1949.     AH = E1h
  1950.     ???
  1951. Return: ???
  1952. Note:    protected mode only???
  1953. SeeAlso: AH=E0h"OS/286",AH=E2h"OS/286",AH=E3h"OS/286",AX=250Eh,INT 31/AX=0301h
  1954. --------T-21E1-------------------------------
  1955. INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
  1956.     AH = E1h
  1957. SeeAlso: AH=E2h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
  1958. SeeAlso: AH=F1h"DoubleDOS"
  1959. --------v-21E1-------------------------------
  1960. INT 21 - VIRUS - "Mendoza", "Fu Manchu" - INSTALLATION CHECK
  1961.     AH = E1h
  1962. Return: AX = 0300h if "Mendoza" resident
  1963.     AX = 0400h if "Fu Manchu" resident
  1964. SeeAlso: AX=E00Fh,AH=E4h"VIRUS"
  1965. --------N-21E1--SF00-------------------------
  1966. INT 21 - Novell NetWare - MESSAGE SERVICES - SEND BROADCAST MESSAGE
  1967.     AH = E1h subfn 00h
  1968.     DS:SI -> request buffer (see below)
  1969.     ES:DI -> reply buffer (see below)
  1970. Return: AL = status
  1971.         00h successful
  1972.         FEh I/O error or out of dynamic workspace
  1973. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1974. SeeAlso: AH=DEh"NetWare",AH=DEh/DL=04h,AH=E1h/SF=01h,AH=E1h/SF=04h
  1975. SeeAlso: AH=E1h/SF=09h
  1976.  
  1977. Format of request buffer:
  1978. Offset    Size    Description
  1979.  00h    WORD    length of following data (max 9Eh)
  1980.  02h    BYTE    00h (subfunction "Send Broadcast Message")
  1981.  03h    BYTE    number of connections (01h-64h)
  1982.  04h  N BYTEs    list of connections to receive broadcast message
  1983.     BYTE    length of message (01h-37h)
  1984.       N BYTEs    broadcast message (no control characters or characters > 7Eh)
  1985.  
  1986. Format of reply buffer:
  1987. Offset    Size    Description
  1988.  00h    WORD    (call) size of following results buffer (max 65h)
  1989.  02h    BYTE    number of connections
  1990.  03h  N BYTEs    list of per-connection results
  1991.         00h successful
  1992.         FCh message rejected due to lack of buffer space
  1993.         FDh invalid connection number
  1994.         FFh blocked (see also AH=E1h/SF=02h)
  1995. --------N-21E1--SF01-------------------------
  1996. INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MESSAGE
  1997.     AH = E1h subfn 01h
  1998.     DS:SI -> request buffer (see below)
  1999.     ES:DI -> reply buffer (see below)
  2000. Return: AL = status
  2001.         00h successful
  2002.         FCh full message queue
  2003.         FEh out of dynamic workspace
  2004. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2005. SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=09h
  2006.  
  2007. Format of request buffer:
  2008. Offset    Size    Description
  2009.  00h    WORD    0001h (length of following data)
  2010.  02h    BYTE    01h (subfunction "Get Broadcast Message")
  2011.  
  2012. Format of reply buffer:
  2013. Offset    Size    Description
  2014.  00h    WORD    (call) size of following results buffer (max 38h)
  2015.  02h    BYTE    length of message (00h-37h)
  2016.         00h if no broadcast messages pending
  2017.  03h  N BYTEs    message (no control characters or characters > 7Eh)
  2018. --------N-21E1-------------------------------
  2019. INT 21 - Novell NetWare - MESSAGE SERVICES - ENABLE/DISABLE BROADCAST MESSAGES
  2020.     AH = E1h
  2021.     DS:SI -> request buffer (see below)
  2022.     ES:DI -> reply buffer
  2023. Return: AL = error code
  2024. Note:    these functions are supported by NetWare 4.0+ but are not listed in
  2025.       _NetWare_System_Calls--DOS_; they may be obsolete
  2026. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=04h,AH=E1h/SF=09h
  2027.  
  2028. Format of request buffer:
  2029. Offset    Size    Description
  2030.  00h    WORD    length of following data (max 9Eh)
  2031.  02h    BYTE    subfunction
  2032.         02h disable station broadcasts
  2033.         03h enable station broadcasts
  2034.  03h    ???
  2035.  
  2036. Format of reply buffer:
  2037. Offset    Size    Description
  2038.  00h    WORD    (call) size of following results buffer
  2039.  02h    ???
  2040. --------N-21E1--SF04-------------------------
  2041. INT 21 - Novell NetWare - MESSAGE SERVICES - SEND PERSONAL MESSAGE
  2042.     AH = E1h subfn 04h
  2043.     DS:SI -> request buffer (see below)
  2044.     ES:DI -> reply buffer (see below)
  2045. Return: AL = status
  2046.         00h successful
  2047.         FEh I/O error or out of dynamic workspace
  2048. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2049.     message pipes use CPU time on the file server; IPX, SPX, or NetBIOS
  2050.       connections should be used for peer-to-peer communications as these
  2051.       protocols do not use file server time
  2052. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h
  2053.  
  2054. Format of request buffer:
  2055. Offset    Size    Description
  2056.  00h    WORD    length of following data (max E5h)
  2057.  02h    BYTE    04h (subfunction "Send Personal Message")
  2058.  03h    BYTE    number of connections (01h-64h)
  2059.  04h  N BYTEs    list of connections to receive broadcast message
  2060.     BYTE    length of message (01h-7Eh)
  2061.       N BYTEs    message (no control characters or characters > 7Eh)
  2062.  
  2063. Format of reply buffer:
  2064. Offset    Size    Description
  2065.  00h    WORD    (call) size of following results buffer (max 65h)
  2066.  02h    BYTE    number of connections
  2067.  03h  N BYTEs    list of per-connection results
  2068.         00h successful
  2069.         FCh message rejected because queue is full (contains 6 msgs)
  2070.         FDh incomplete pipe
  2071.         FFh failed
  2072. --------N-21E1--SF05-------------------------
  2073. INT 21 - Novell NetWare - MESSAGE SERVICES - GET PERSONAL MESSAGE
  2074.     AH = E1h subfn 05h
  2075.     DS:SI -> request buffer (see below)
  2076.     ES:DI -> reply buffer (see below)
  2077. Return: AL = status
  2078.         00h successful
  2079.         FEh out of dynamic workspace
  2080. Desc:    return the oldest message in the default file server's message queue
  2081.       for the calling workstation
  2082. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2083. SeeAlso: AH=E1h/SF=01h,AH=E1h/SF=04h,AH=E1h/SF=06h,AH=E1h/SF=08h
  2084.  
  2085. Format of request buffer:
  2086. Offset    Size    Description
  2087.  00h    WORD    0001h (length of following data)
  2088.  02h    BYTE    05h (subfunction "Get Personal Message")
  2089.  
  2090. Format of reply buffer:
  2091. Offset    Size    Description
  2092.  00h    WORD    (call) size of following results buffer (max 80h)
  2093.  02h    BYTE    connection number of sending station
  2094.  03h    BYTE    length of message (00h-7Eh)
  2095.         00h if no personal messages pending
  2096.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  2097. --------N-21E1--SF06-------------------------
  2098. INT 21 - Novell NetWare - MESSAGE SERVICES - OPEN MESSAGE PIPE
  2099.     AH = E1h subfn 06h
  2100.     DS:SI -> request buffer (see below)
  2101.     ES:DI -> reply buffer (see below)
  2102. Return: AL = status
  2103.         00h successful
  2104.         FEh out of dynamic workspace
  2105. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2106. SeeAlso: AH=E1h/SF=04h,AH=E1h/SF=07h,AH=E1h/SF=08h
  2107.  
  2108. Format of request buffer:
  2109. Offset    Size    Description
  2110.  00h    WORD    length of following data (max 66h)
  2111.  02h    BYTE    06h (subfunction "Open Message Pipe")
  2112.  03h    BYTE    number of pipes to open (01h-64h)
  2113.  04h  N BYTEs    list of connection numbers
  2114.  
  2115. Format of reply buffer:
  2116. Offset    Size    Description
  2117.  00h    WORD    (call) size of following results buffer (max 65h)
  2118.  02h    BYTE    number of connections
  2119.  03h  N BYTEs    list of results
  2120.         00h successful
  2121.         FEh incomplete (target half not yet created)
  2122.         FFh failed
  2123. --------N-21E1--SF07-------------------------
  2124. INT 21 - Novell NetWare - MESSAGE SERVICES - CLOSE MESSAGE PIPE
  2125.     AH = E1h subfn 07h
  2126.     DS:SI -> request buffer (see below)
  2127.     ES:DI -> reply buffer (see below)
  2128. Return: AL = status
  2129.         00h successful
  2130.         FCh full message queue
  2131.         FEh out of dynamic workspace
  2132. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2133. SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h
  2134.  
  2135. Format of request buffer:
  2136. Offset    Size    Description
  2137.  00h    WORD    length of following data (max 66h)
  2138.  02h    BYTE    07h (subfunction "Close Message Pipe")
  2139.  03h    BYTE    number of pipes to close (01h-64h)
  2140.  04h  N BYTEs    list of connection numbers
  2141.  
  2142. Format of reply buffer:
  2143. Offset    Size    Description
  2144.  00h    WORD    (call) size of following results buffer (max 65h)
  2145.  02h    BYTE    number of connections
  2146.  03h  N BYTEs    list of results
  2147.         00h successful
  2148.         FDh failed
  2149.         FFh no such pipe
  2150. --------N-21E1--SF08-------------------------
  2151. INT 21 - Novell NetWare - MESSAGE SERVICES - CHECK PIPE STATUS
  2152.     AH = E1h subfn 08h
  2153.     DS:SI -> request buffer (see below)
  2154.     ES:DI -> reply buffer (see below)
  2155. Return: AL = status (see below)
  2156. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2157. SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=07h
  2158.  
  2159. Values for status:
  2160.  00h    successful
  2161.  FCh    full message queue
  2162.  FEh    out of dynamic workspace
  2163.  
  2164. Format of request buffer:
  2165. Offset    Size    Description
  2166.  00h    WORD    length of following data (max 66h)
  2167.  02h    BYTE    08h (subfunction "Check Pipe Status")
  2168.  03h    BYTE    number of pipes to monitor (01h-64h)
  2169.  04h  N BYTEs    list of connection numbers
  2170.  
  2171. Format of reply buffer:
  2172. Offset    Size    Description
  2173.  00h    WORD    (call) size of following results buffer (max 65h)
  2174.  02h    BYTE    number of connections
  2175.  03h  N BYTEs    list of pipe statuses
  2176.         00h open
  2177.         FEh incomplete
  2178.         FFh closed
  2179. --------N-21E1--SF09-------------------------
  2180. INT 21 - Novell NetWare - MESSAGE SERVICES - BROADCAST TO CONSOLE
  2181.     AH = E1h subfn 09h
  2182.     DS:SI -> request buffer (see below)
  2183.     ES:DI -> reply buffer (see below)
  2184. Return: AL = status (see AH=E1h/SF=08h)
  2185. Desc:    send a one-line message to the system console on the default file
  2186.       server
  2187. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2188. SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=01h,AH=E3h/SF=D1h
  2189.  
  2190. Format of request buffer:
  2191. Offset    Size    Description
  2192.  00h    WORD    length of following data (max 3Eh)
  2193.  02h    BYTE    09h (subfunction "Broadcast to Console")
  2194.  03h    BYTE    length of message (01h-3Ch)
  2195.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  2196.  
  2197. Format of reply buffer:
  2198. Offset    Size    Description
  2199.  00h    WORD    (call) 0000h (no results returned)
  2200. --------E-21E2-------------------------------
  2201. INT 21 - OS/286, OS/386 - SET REAL PROCEDURE SIGNAL HANDLER
  2202.     AH = E2h
  2203.     ???
  2204. Return: ???
  2205. SeeAlso: AH=E0h"OS/286",AH=E1h"OS/286",AH=E6h"OS/286"
  2206. --------N-21E2-------------------------------
  2207. INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
  2208.     AH = E2h
  2209.     AL = character
  2210. Return: AL = 00h successful
  2211.          01h buffer full (128 characters)
  2212. SeeAlso: AH=E1h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
  2213. SeeAlso: AH=F2h"DoubleDOS"
  2214. --------N-21E2--SF00-------------------------
  2215. INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY HANDLE
  2216.     AH = E2h subfn 00h
  2217.     DS:SI -> request buffer (see below)
  2218.     ES:DI -> reply buffer (see below)
  2219. Return: AL = status (00h,98h,9Bh,9Ch) (see below)
  2220. Desc:    set the target handle to reference the directory specified by the
  2221.       source handle and the source path; both handles must refer to the
  2222.       same file server
  2223. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2224.       Alloy NTNX
  2225.     the target handle is not changed if this function fails
  2226. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=12h,AH=E2h/SF=13h
  2227.  
  2228. Values for status:
  2229.  00h    successful
  2230.  84h    not permitted to create
  2231.  8Ah    not permitted to delete
  2232.  8Bh    not permitted to rename
  2233.  8Ch    not permitted to modify
  2234.  98h    nonexistent volume
  2235.  9Bh    invalid directory handle
  2236.  9Ch    invalid path
  2237.  9Eh    invalid filename
  2238.  9Fh    directory currently in use
  2239.  A0h    directory not empty
  2240.  FCh    no such bindery object
  2241.  
  2242. Format of request buffer:
  2243. Offset    Size    Description
  2244.  00h    WORD    length of following data (max 103h)
  2245.  02h    BYTE    00h (subfunction "Set Directory Handle")
  2246.  03h    BYTE    directory handle of target
  2247.  04h    BYTE    directory handle of source
  2248.  05h    BYTE    length of source directory path (01h-FFh)
  2249.  06h  N BYTEs    source directory path
  2250.  
  2251. Format of reply buffer:
  2252. Offset    Size    Description
  2253.  00h    WORD    (call) 0000h (no results returned)
  2254. --------N-21E2--SF01-------------------------
  2255. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY PATH
  2256.     AH = E2h subfn 01h
  2257.     DS:SI -> request buffer (see below)
  2258.     ES:DI -> reply buffer (see below)
  2259. Return: AL = status (00h,9Bh) (see AH=E2h/SF=00h)
  2260. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2261.       Alloy NTNX
  2262. SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=03h,AH=E2h/SF=1Ah,AH=E9h
  2263.  
  2264. Format of request buffer:
  2265. Offset    Size    Description
  2266.  00h    WORD    0002h (length of following data)
  2267.  02h    BYTE    01h (subfunction "Get Directory Path")
  2268.  03h    BYTE    directory handle
  2269.  
  2270. Format of reply buffer:
  2271. Offset    Size    Description
  2272.  00h    WORD    (call) length of following data buffer
  2273.  02h    BYTE    length of directory path (01h-FFh)
  2274.  03h  N BYTEs    full directory path including volume
  2275. --------N-21E2--SF02-------------------------
  2276. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY INFORMATION
  2277.     AH = E2h subfn 02h
  2278.     DS:SI -> request buffer (see below)
  2279.     ES:DI -> reply buffer (see below)
  2280. Return: AL = status (00h,98h,9Bh,9Ch) (see AH=E2h/SF=00h)
  2281. Desc:    get information about the first or next subdirectory of the specified
  2282.       directory
  2283. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2284.       Alloy NTNX
  2285. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=03h,AH=E2h/SF=19h
  2286.  
  2287. Format of request buffer:
  2288. Offset    Size    Description
  2289.  00h    WORD    length of following data (max 104h)
  2290.  02h    BYTE    02h (subfunction "Scan Directory Information")
  2291.  03h    BYTE    directory handle
  2292.  04h    WORD    (big-endian) subdirectory number
  2293.         0000h for first call, returned subdir number + 1 on next call
  2294.  06h    BYTE    length of directory path
  2295.  07h  N BYTEs    directory path
  2296.  
  2297. Format of reply buffer:
  2298. Offset    Size    Description
  2299.  00h    WORD    (call) 001Ch (length of following data buffer)
  2300.  02h 16 BYTEs    subdirectory name
  2301.  12h    DWORD    (big-endian) date and time of creation (see below)
  2302.  16h    DWORD    (big-endian) object ID of owner
  2303.  1Ah    BYTE    maximum directory rights (see AH=E2h/SF=03h)
  2304.  1Bh    BYTE    unused
  2305.  1Ch    WORD    (big-endian) subdirectory number
  2306.  
  2307. Bitfields for date and time:
  2308.  bits 31-25    year-1980
  2309.  bits 24-21    month
  2310.  bits 20-16    day
  2311.  bits 15-11    hour
  2312.  bits 10-5    minute
  2313.  bits 4-0    second
  2314. --------N-21E2--SF03-------------------------
  2315. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET EFFECTIVE DIRECTORY RIGHTS
  2316.     AH = E2h subfn 03h
  2317.     DS:SI -> request buffer (see below)
  2318.     ES:DI -> reply buffer (see below)
  2319. Return: AL = status (00h,98h,9Bh) (see AH=E2h/SF=00h)
  2320. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2321.       Alloy NTNX
  2322. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=02h
  2323.  
  2324. Format of request buffer:
  2325. Offset    Size    Description
  2326.  00h    WORD    length of following data (max 102h)
  2327.  02h    BYTE    03h (subfunction "Get Effective Directory Rights")
  2328.  03h    BYTE    directory handle
  2329.  04h    BYTE    length of directory path (00h-FFh)
  2330.  05h  N BYTEs    directory path
  2331.  
  2332. Format of reply buffer:
  2333. Offset    Size    Description
  2334.  00h    WORD    (call) 0001h (length of following data buffer)
  2335.  02h    BYTE    effective directory rights (see below)
  2336.  
  2337. Bitfields for directory rights:
  2338.  bit 0    reading allowed
  2339.  bit 1    writing allowed
  2340.  bit 2    opens allowed
  2341.  bit 3    file creation allowed
  2342.  bit 4    deletion allowed
  2343.  bit 5    "parental" may create/delete subdirectories and
  2344.     grant/revoke trustee rights
  2345.  bit 6    directory search allowed
  2346.  bit 7    file attributes may be changed
  2347. --------N-21E2--SF04-------------------------
  2348. INT 21 - Novell NetWare - DIRECTORY SERVICES - MODIFY MAXIMUM RIGHTS MASK
  2349.     AH = E2h subfn 04h
  2350.     DS:SI -> request buffer (see below)
  2351.     ES:DI -> reply buffer (see below)
  2352. Return: AL = status (00h,8Ch,98h,9Ch) (see AH=E2h/SF=00h)
  2353. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2354.       Alloy NTNX
  2355. SeeAlso: AH=E2h/SF=03h,AH=E2h/SF=0Ah,AH=E2h/SF=0Dh
  2356.  
  2357. Format of request buffer:
  2358. Offset    Size    Description
  2359.  00h    WORD    length of following data (max 104h)
  2360.  02h    BYTE    04h (subfunction "Modify Maximum Rights Mask")
  2361.  03h    BYTE    directory handle
  2362.  04h    BYTE    rights to grant (see AH=E2h/SF=03h)
  2363.  05h    BYTE    rights to revoke (see AH=E2h/SF=03h)
  2364.  06h    BYTE    length of directory path (00h-FFh)
  2365.  07h  N BYTEs    directory path
  2366. Note:    the rights specified at offset 05h are revoked first, and then the
  2367.       rights specified at offset 04h are added to the resulting rights
  2368.       mask
  2369.  
  2370. Format of reply buffer:
  2371. Offset    Size    Description
  2372.  00h    WORD    (call) 0000h (no results returned)
  2373. --------N-21E2--SF05-------------------------
  2374. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NUMBER
  2375.     AH = E2h subfn 05h
  2376.     DS:SI -> request buffer (see below)
  2377.     ES:DI -> reply buffer (see below)
  2378. Return: AL = status (00h,98h) (see AH=E2h/SF=00h)
  2379. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2380.       Alloy NTNX
  2381. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E3h/SF=E9h
  2382.  
  2383. Format of request buffer:
  2384. Offset    Size    Description
  2385.  00h    WORD    length of following data (max 12h)
  2386.  02h    BYTE    05h (subfunction "Get Volume Number")
  2387.  03h    BYTE    length of volume name (01h-10h)
  2388.  04h  N BYTEs    volume name
  2389.  
  2390. Format of reply buffer:
  2391. Offset    Size    Description
  2392.  00h    WORD    (call) 0001h (length of following results buffer)
  2393.  02h    BYTE    volume number
  2394. --------N-21E2--SF06-------------------------
  2395. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NAME
  2396.     AH = E2h subfn 06h
  2397.     DS:SI -> request buffer (see below)
  2398.     ES:DI -> reply buffer (see below)
  2399. Return: AL = status (00h,98h) (see AH=E2h/SF=00h)
  2400. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2401.       Alloy NTNX
  2402. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E2h/SF=1Ah
  2403. SeeAlso: AH=E3h/SF=E9h
  2404.  
  2405. Format of request buffer:
  2406. Offset    Size    Description
  2407.  00h    WORD    0002h (length of following data)
  2408.  02h    BYTE    06h (subfunction "Get Volume Name")
  2409.  03h    BYTE    volume number
  2410.  
  2411. Format of reply buffer:
  2412. Offset    Size    Description
  2413.  00h    WORD    (call) 0011h (length of following results buffer)
  2414.  02h    BYTE    length of volume name
  2415.  03h 16 BYTEs    NUL-padded volume name
  2416. --------N-21E2--SF0A-------------------------
  2417. INT 21 - Novell NetWare - DIRECTORY SERVICES - CREATE DIRECTORY
  2418.     AH = E2h subfn 0Ah
  2419.     DS:SI -> request buffer (see below)
  2420.     ES:DI -> reply buffer (see below)
  2421. Return: AL = status (00h,84h,98h,FCh) (see AH=E2h/SF=00h)
  2422. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2423.       Alloy NTNX
  2424. SeeAlso: AH=39h,AH=E2h/SF=0Bh,AH=E2h/SF=0Fh
  2425.  
  2426. Format of request buffer:
  2427. Offset    Size    Description
  2428.  00h    WORD    length of following data (max 103h)
  2429.  02h    BYTE    0Ah (subfunction "Create Directory")
  2430.  03h    BYTE    directory handle
  2431.  04h    BYTE    maximum directory rights (see AH=E2h/SF=01h)
  2432.  05h    BYTE    length of directory path (00h-FFh)
  2433.  06h  N BYTEs    directory path
  2434.  
  2435. Format of reply buffer:
  2436. Offset    Size    Description
  2437.  00h    WORD    (call) 0000h (no data returned)
  2438. --------N-21E2--SF0B-------------------------
  2439. INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE DIRECTORY
  2440.     AH = E2h subfn 0Bh
  2441.     DS:SI -> request buffer (see below)
  2442.     ES:DI -> reply buffer (see below)
  2443. Return: AL = status (00h,8Ah,98h,9Bh,9Ch,9Fh,A0h) (see AH=E2h/SF=00h)
  2444. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2445.       Alloy NTNX
  2446. SeeAlso: AH=3Ah,AH=E2h/SF=0Ah,AH=E2h/SF=0Fh
  2447.  
  2448. Format of request buffer:
  2449. Offset    Size    Description
  2450.  00h    WORD    length of following data (max 103h)
  2451.  02h    BYTE    0Bh (subfunction "Delete Directory")
  2452.  03h    BYTE    directory handle
  2453.  04h    BYTE    unused
  2454.  05h    BYTE    length of directory path (00h-FFh)
  2455.  06h  N BYTEs    directory path
  2456.  
  2457. Format of reply buffer:
  2458. Offset    Size    Description
  2459.  00h    WORD    (call) 0000h (no data returned)
  2460. --------N-21E2--SF0C-------------------------
  2461. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY FOR TRUSTEES
  2462.     AH = E2h subfn 0Ch
  2463.     DS:SI -> request buffer (see below)
  2464.     ES:DI -> reply buffer (see below)
  2465. Return: AL = status
  2466.         00h successful
  2467.         9Ch no more trustees
  2468. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2469. SeeAlso: AH=E2h/SF=0Dh,AH=E2h/SF=0Eh,AH=E3h/SF=47h
  2470.  
  2471. Format of request buffer:
  2472. Offset    Size    Description
  2473.  00h    WORD    length of following data (max 103h)
  2474.  02h    BYTE    0Ch (subfunction "Scan Directory For Trustees")
  2475.  03h    BYTE    directory handle
  2476.  04h    BYTE    sequence number
  2477.         00h on first call, increment for each subsequent call
  2478.  05h    BYTE    length of directory path (00h-FFh)
  2479.  06h  N BYTEs    directory path
  2480.  
  2481. Format of reply buffer:
  2482. Offset    Size    Description
  2483.  00h    WORD    (call) 0031h (length of following results buffer)
  2484.  02h 16 BYTEs    directory name
  2485.  12h  4 BYTEs    date and time of creation
  2486.  16h    DWORD    (big-endian) object ID of owner
  2487.  1Ah  5 DWORDs    (big-endian) object IDs of Trustees 0 through 4
  2488.         00000000h = end of group
  2489.  2Eh  5 BYTEs    directory rights for Trustees 0 through 4 (see AH=E2h/SF=03h)
  2490. --------N-21E2--SF0D-------------------------
  2491. INT 21 - Novell NetWare - DIRECTORY SERVICES - ADD TRUSTEE TO DIRECTORY
  2492.     AH = E2h subfn 0Dh
  2493.     DS:SI -> request buffer (see below)
  2494.     ES:DI -> reply buffer (see below)
  2495. Return: AL = status (00h,8Ch,FCh) (see AH=E2h/SF=00h)
  2496. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2497.       Alloy NTNX
  2498. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Eh,AH=E3h/SF=47h
  2499.  
  2500. Format of request buffer:
  2501. Offset    Size    Description
  2502.  00h    WORD    length of following data (max 107h)
  2503.  02h    BYTE    0Dh (subfunction "Add Trustee To Directory")
  2504.  03h    BYTE    directory handle
  2505.  04h    DWORD    (big-endian) object ID of trustee
  2506.  08h    BYTE    trustee directory rights (see AH=E2h/SF=01h)
  2507.  09h    BYTE    length of directory path (00h-FFh)
  2508.  0Ah  N BYTEs    directory path
  2509.  
  2510. Format of reply buffer:
  2511. Offset    Size    Description
  2512.  00h    WORD    (call) 0000h (no data returned)
  2513. --------N-21E2--SF0E-------------------------
  2514. INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE TRUSTEE FROM DIRECTORY
  2515.     AH = E2h subfn 0Eh
  2516.     DS:SI -> request buffer (see below)
  2517.     ES:DI -> reply buffer (see below)
  2518. Return: AL = status (00h,98h,9Bh,9Ch) (see AH=E2h/SF=00h)
  2519. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2520.       Alloy NTNX
  2521. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh
  2522.  
  2523. Format of request buffer:
  2524. Offset    Size    Description
  2525.  00h    WORD    length of following data (max 107h)
  2526.  02h    BYTE    0Eh (subfunction "Delete Trustee From Directory")
  2527.  03h    BYTE    directory handle
  2528.  04h    DWORD    (big-endian) object ID of trustee
  2529.  08h    BYTE    unused
  2530.  09h    BYTE    length of directory path (00h-FFh)
  2531.  0Ah  N BYTEs    directory path
  2532.  
  2533. Format of reply buffer:
  2534. Offset    Size    Description
  2535.  00h    WORD    (call) 0000h (no data returned)
  2536. --------N-21E2--SF0F-------------------------
  2537. INT 21 - Novell NetWare - DIRECTORY SERVICES - RENAME DIRECTORY
  2538.     AH = E2h subfn 0Fh
  2539.     DS:SI -> request buffer (see below)
  2540.     ES:DI -> reply buffer (see below)
  2541. Return: AL = status (00h,8Bh,9Bh,9Ch,9Eh) (see AH=E2h/SF=00h)
  2542. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2543.       Alloy NTNX
  2544.     directories SYS:LOGIN, SYS:MAIL, and SYS:PUBLIC must not be renamed
  2545. SeeAlso: AH=56h,AH=E2h/SF=0Ah,AH=E2h/SF=0Bh
  2546.  
  2547. Format of request buffer:
  2548. Offset    Size    Description
  2549.  00h    WORD    length of following data (max 111h)
  2550.  02h    BYTE    0Fh (subfunction "Rename Directory")
  2551.  03h    BYTE    directory handle
  2552.  04h    BYTE    length of directory path (00h-FFh)
  2553.  05h  N BYTEs    directory path
  2554.     BYTE    length of new directory name (01h-0Eh)
  2555.       N BYTEs    new directory name
  2556.  
  2557. Format of reply buffer:
  2558. Offset    Size    Description
  2559.  00h    WORD    (call) 0000h (no data returned)
  2560. --------N-21E2--SF10-------------------------
  2561. INT 21 - Novell NetWare - FILE SERVICES - PURGE ERASED FILES
  2562.     AH = E2h subfn 10h
  2563.     DS:SI -> request buffer (see below)
  2564.     ES:DI -> reply buffer (see below)
  2565. Return: AL = status
  2566.         00h successful
  2567.         C6h no console rights
  2568. Desc:    purges files marked for deletion on the file server by the calling
  2569.       workstation
  2570. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2571.       Alloy NTNX
  2572. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=11h,AH=E3h/SF=CEh,AX=F244h
  2573.  
  2574. Format of request buffer:
  2575. Offset    Size    Description
  2576.  00h    WORD    0001h (length of following data)
  2577.  02h    BYTE    10h (subfunction "Purge Erased Files")
  2578.  
  2579. Format of reply buffer:
  2580. Offset    Size    Description
  2581.  00h    WORD    (call) 0000h (no results returned)
  2582. --------N-21E2--SF11-------------------------
  2583. INT 21 - Novell NetWare - FILE SERVICES - RESTORE ERASED FILE
  2584.     AH = E2h subfn 11h
  2585.     DS:SI -> request buffer (see below)
  2586.     ES:DI -> reply buffer (see below)
  2587. Return: AL = status
  2588.         00h successful
  2589.         98h nonexistent volume
  2590.         FFh no more erased files
  2591. Desc:    restores one file marked for deletion which has not yet been purged
  2592. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2593.       Alloy NTNX
  2594. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=10h,AH=E3h/SF=CEh,AX=F244h
  2595.  
  2596. Format of request buffer:
  2597. Offset    Size    Description
  2598.  00h    WORD    length of following data (max 13h)
  2599.  02h    BYTE    11h (subfunction "Restore Erased File")
  2600.  03h    BYTE    directory handle or 00h
  2601.  04h    BYTE    length of volume name
  2602.  05h  N BYTEs    volume name (including colon)
  2603. Note:    if both a directory handle and a volume name are specified, the volume
  2604.       name overrides the handle
  2605.  
  2606. Format of reply buffer:
  2607. Offset    Size    Description
  2608.  00h    WORD    (call) 001Eh (size of following results buffer)
  2609.  02h 15 BYTEs    ASCIZ name of erased file
  2610.  11h 15 BYTEs    ASCIZ name under which file was restored
  2611. --------N-21E2--SF12-------------------------
  2612. INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC PERMANENT DIRECTORY HANDLE
  2613.     AH = E2h subfn 12h
  2614.     DS:SI -> request buffer (see below)
  2615.     ES:DI -> reply buffer (see below)
  2616. Return: AL = status (00h,98h,9Ch) (see AH=E2h/SF=00h)
  2617. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2618.       Alloy NTNX
  2619. SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=13h,AH=E2h/SF=14h
  2620.  
  2621. Format of request buffer:
  2622. Offset    Size    Description
  2623.  00h    WORD    length of following data (max 103h)
  2624.  02h    BYTE    12h (subfunction "Alloc Permanent Directory Handle")
  2625.  03h    BYTE    directory handle
  2626.  04h    BYTE    drive ('A'-'Z')
  2627.  05h    BYTE    length of directory path
  2628.  06h  N BYTEs    directory path
  2629.  
  2630. Format of reply buffer:
  2631. Offset    Size    Description
  2632.  00h    WORD    (call) 0002h (size of following results buffer)
  2633.  02h    BYTE    new directory handle
  2634.  03h    BYTE    effective directory rights (see AH=E2h/SF=01h)
  2635. --------N-21E2--SF13-------------------------
  2636. INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC TEMPORARY DIRECTORY HANDLE
  2637.     AH = E2h subfn 13h
  2638.     DS:SI -> request buffer (see below)
  2639.     ES:DI -> reply buffer (see AH=E2h/SF=12h)
  2640. Return: AL = status (00h,98h,9Ch) (see AH=E2h/SF=00h)
  2641. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2642.       Alloy NTNX
  2643.     this call is the same as AH=E2h/SF=12h except that the directory handle
  2644.       will be automatically deallocated when the calling application
  2645.       executes an End of Job call (AH=D6h) or terminates
  2646. SeeAlso: AH=D6h,AH=E2h/SF=00h,AH=E2h/SF=12h,AH=E2h/SF=14h,AH=E2h/SF=16h
  2647.  
  2648. Format of request buffer:
  2649. Offset    Size    Description
  2650.  00h    WORD    length of following data (max 103h)
  2651.  02h    BYTE    13h (subfunction "Alloc Temporary Directory Handle")
  2652.  03h    BYTE    directory handle
  2653.  04h    BYTE    drive ('A'-'Z')
  2654.  05h    BYTE    length of directory path
  2655.  06h  N BYTEs    directory path
  2656. --------N-21E2--SF14-------------------------
  2657. INT 21 - Novell NetWare - DIRECTORY SERVICES - DEALLOCATE DIRECTORY HANDLE
  2658.     AH = E2h subfn 14h
  2659.     DS:SI -> request buffer (see below)
  2660.     ES:DI -> reply buffer (see below)
  2661. Return: AL = status (00h,9Bh) (see AH=E2h/SF=00h)
  2662. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2663.       Alloy NTNX
  2664. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=13h
  2665.  
  2666. Format of request buffer:
  2667. Offset    Size    Description
  2668.  00h    WORD    0002h (length of following data)
  2669.  02h    BYTE    14h (subfunction "Deallocate Directory Handle")
  2670.  03h    BYTE    directory handle
  2671.  
  2672. Format of reply buffer:
  2673. Offset    Size    Description
  2674.  00h    WORD    (call) 0000h (no returned data)
  2675. --------N-21E2--SF15-------------------------
  2676. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH HANDLE
  2677.     AH = E2h subfn 15h
  2678.     DS:SI -> request buffer (see below)
  2679.     ES:DI -> reply buffer (see below)
  2680. Return: AL = status
  2681.         00h successful
  2682. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2683.       Alloy NTNX
  2684. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=06h,AH=E2h/SF=19h,AH=E3h/SF=E9h
  2685.  
  2686. Format of request buffer:
  2687. Offset    Size    Description
  2688.  00h    WORD    0002h (length of following data)
  2689.  02h    BYTE    15h (subfunction "Get Volume Info With Handle")
  2690.  03h    BYTE    directory handle
  2691.  
  2692. Format of reply buffer:
  2693. Offset    Size    Description
  2694.  00h    WORD    (call) 001Ch (length of following results buffer)
  2695.  02h    WORD    (big-endian) sectors per block
  2696.  04h    WORD    (big-endian) total blocks on volume
  2697.  06h    WORD    (big-endian) blocks available on volume
  2698.  08h    WORD    (big-endian) total directory slots
  2699.  0Ah    WORD    (big-endian) directory slots available
  2700.  0Ch 16 BYTEs    NUL-padded volume name
  2701.  1Ch    WORD    (big-endian) flag: volume removable if nonzero
  2702. --------N-21E2--SF16-------------------------
  2703. INT 21 u - Novell NetWare - DIRECTORY SERVICES - ALLOC SPECIAL TEMP DIR HANDLE
  2704.     AH = E2h subfn 16h
  2705.     DS:SI -> request buffer (see below)
  2706.     ES:DI -> reply buffer
  2707. Return: AL = status
  2708. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX,
  2709.       but is not described in _NetWare_System_Calls--DOS_
  2710. SeeAlso: AH=E2h/SF=13h,AH=E2h/SF=14h
  2711.  
  2712. Format of request buffer:
  2713. Offset    Size    Description
  2714.  00h    WORD    length of following data
  2715.  02h    BYTE    16h (subfunction "Allocate Special Temporary Directory Handle")
  2716.     ???
  2717. --------N-21E2--SF17-------------------------
  2718. INT 21 - Novell NetWare - DIRECTORY SERVICES - SAVE DIRECTORY HANDLE
  2719.     AH = E2h subfn 17h
  2720.     DS:SI -> request buffer (see below)
  2721.     ES:DI -> reply buffer (see below)
  2722. Return: AL = status
  2723.         00h successful
  2724.         else network error code
  2725. Note:    this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
  2726. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h
  2727.  
  2728. Format of request buffer:
  2729. Offset    Size    Description
  2730.  00h    WORD    0002h (length of following data)
  2731.  02h    BYTE    18h (subfunction "Restore Directory Handle")
  2732.  03h    BYTE    directory handle
  2733.  
  2734. Format of reply buffer:
  2735. Offset    Size    Description
  2736.  00h    WORD    (call) 0010h (length of following results buffer)
  2737.  02h 16 BYTEs    save buffer
  2738. --------N-21E2--SF18-------------------------
  2739. INT 21 - Novell NetWare - DIRECTORY SERVICES - RESTORE DIRECTORY HANDLE
  2740.     AH = E2h subfn 18h
  2741.     DS:SI -> request buffer (see below)
  2742.     ES:DI -> reply buffer (see below)
  2743. Return: AL = status
  2744.         00h successful
  2745.         else network error code
  2746. Desc:    restore a previously saved directory handle to reproduce an executing
  2747.       environment, possibly on a different execution site
  2748. Note:    this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
  2749. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h
  2750.  
  2751. Format of request buffer:
  2752. Offset    Size    Description
  2753.  00h    WORD    0011h (length of following data)
  2754.  02h    BYTE    18h (subfunction "Restore Directory Handle")
  2755.  03h 16 BYTEs    save buffer
  2756.  
  2757. Format of reply buffer:
  2758. Offset    Size    Description
  2759.  00h    WORD    (call) 0002h (length of following results buffer)
  2760.  02h    BYTE    new directory handle
  2761.  03h    BYTE    effective rights (see AH=E2h/SF=03h)
  2762. --------N-21E2--SF19-------------------------
  2763. INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY INFORMATION
  2764.     AH = E2h subfn 19h
  2765.     DS:SI -> request buffer (see below)
  2766.     ES:DI -> reply buffer (see below)
  2767. Return: AL = status (00h,9Bh,9Ch) (see AH=E2h/SF=00h)
  2768. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2769. SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=0Fh
  2770.  
  2771. Format of request buffer:
  2772. Offset    Size    Description
  2773.  00h    WORD    length of following data (max 10Bh)
  2774.  02h    BYTE    19h (subfunction "Set Directory Information")
  2775.  03h    BYTE    directory handle
  2776.  04h    DWORD    (big-endian) date and time of creation
  2777.  08h    DWORD    (big-endian) object ID of owner
  2778.  0Ch    BYTE    maximum directory rights (see AH=E2h/SF=03h)
  2779.  0Dh    BYTE    length of directory path
  2780.  0Eh  N BYTEs    directory path
  2781.  
  2782. Format of reply buffer:
  2783. Offset    Size    Description
  2784.  00h    WORD    (call) 0000h (no results returned)
  2785. --------N-21E2--SF1A-------------------------
  2786. INT 21 - Novell NetWare - FILE SERVER - GET PATH FROM DIRECTORY ENTRY
  2787.     AH = E2h subfn 1Ah
  2788.     DS:SI -> request buffer (see below)
  2789.     ES:DI -> reply buffer (see below)
  2790. Return: AL = status
  2791.         00h successful
  2792. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2793.       Alloy NTNX
  2794. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=06h,AH=E3h/SF=D7h
  2795.  
  2796. Format of request buffer:
  2797. Offset    Size    Description
  2798.  00h    WORD    0004h (length of following data)
  2799.  02h    BYTE    1Ah (subfunction "Get Path From Directory Entry")
  2800.  03h    BYTE    volume number (00h-1Fh)
  2801.  04h    WORD    (big-endian) directory entry number
  2802.  
  2803. Format of reply buffer:
  2804. Offset    Size    Description
  2805.  00h    WORD    (call) size of following results record (max 200h)
  2806.  02h 256 BYTEs    path
  2807. --------E-21E3-------------------------------
  2808. INT 21 - OS/286, OS/386 - ISSUE REAL INTERRUPT
  2809.     AH = E3h
  2810.     AL = interrupt number
  2811.     ???
  2812. Return: ???
  2813. Note:    protected mode only???
  2814. SeeAlso: AH=E1h"OS/286",INT 31/AX=0300h
  2815. --------T-21E3-------------------------------
  2816. INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
  2817.     AH = E3h
  2818.     AL = character
  2819. Return: AL = 00h successful
  2820.          01h buffer full (128 characters)
  2821. SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E8h"DoubleDOS"
  2822. SeeAlso: AH=F3h"DoubleDOS"
  2823. --------N-21E3-------------------------------
  2824. INT 21 - Novell NetWare - CONNECTION CONTROL
  2825.     AH = E3h
  2826.     DS:SI -> request buffer (see below)
  2827.     ES:DI -> reply buffer (see below)
  2828. Return: AL = status
  2829.         00h successful
  2830.         else error code
  2831. Note:    supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
  2832. SeeAlso: AH=E3h/SF=0Ah,AH=E3h/SF=32h,AH=E3h/SF=64h,AH=E3h/SF=C8h
  2833.  
  2834. Format of request buffer:
  2835. Offset    Size    Description
  2836.  00h    WORD    length of following data
  2837.  02h    BYTE    subfunction number
  2838.         00h login
  2839.         01h change password
  2840.         02h map user to station set
  2841.         03h map object to number
  2842.         04h map number to object
  2843.         05h get station's logged information
  2844.         06h get station's root mask (obsolete)
  2845.         07h map group name to number
  2846.         08h map number to group name
  2847.         09h get memberset M of group G
  2848.     var    depends on subfunction
  2849. Notes:    the above subfunctions are not described in _NetWare_System_Calls--DOS_
  2850.     see separate entries below for other subfunctions
  2851.  
  2852. Format of reply buffer:
  2853. Offset    Size    Description
  2854.  00h    WORD    (call) length of following buffer space for results
  2855.     var    depends on subfunction
  2856.  
  2857. Format of object property:
  2858. Offset    Size    Description
  2859.  00h 1-16 BYTEs property name
  2860.   N    BYTE    flags
  2861.         bit 0: property is dynamic
  2862.         bit 1: property is a set rather than an item
  2863.  N+1    BYTE    security levels (see below)
  2864.     ???
  2865.  
  2866. Names of well-known properties:
  2867.  ACCOUNT_BALANCE
  2868.  ACCOUNT_SERVERS
  2869.  GROUP_MEMBERS
  2870.  GROUPS_I'M_IN
  2871.  IDENTIFICATION        user's name
  2872.  LOGIN_CONTROL
  2873.  NET_ADDRESS
  2874.  OPERATORS
  2875.  PASSWORD
  2876.  SECURITY_EQUALS
  2877.  
  2878. Values for security levels:
  2879.  00h    "anyone" everyone may access
  2880.  01h    "logged" only logged-in clients may access
  2881.  02h    "object" only clients logged-in with object's name, type, and password
  2882.  03h    "supervisor" only clients logged-in with supervisor privileges
  2883.  04h    "NetWare" only NetWare may access
  2884. Note:    the above values are stored in a nybble; the high half-byte is write
  2885.       access and the low half-byte is read access
  2886.  
  2887. Values for object type:
  2888.  0000h    unknown
  2889.  0001h    user
  2890.  0002h    user group
  2891.  0003h    print queue
  2892.  0004h    file server
  2893.  0005h    job server
  2894.  0006h    gateway
  2895.  0007h    print server
  2896.  0008h    archive queue
  2897.  0009h    archive server
  2898.  000Ah    job queue
  2899.  000Bh    administration
  2900.  0026h    remote bridge server
  2901.  0047h    advertising print server
  2902.  0048h-8000h reserved
  2903.  FFFFh    wild (used only for finding objects)
  2904. --------N-21E3--SF0A-------------------------
  2905. INT 21 - Novell NetWare - CONNECTION SERVICES - ENTER LOGIN AREA
  2906.     AH = E3h subfn 0Ah
  2907.     DS:SI -> request buffer (see below)
  2908.     ES:DI -> reply buffer (see below)
  2909. Return: AL = status
  2910.         00h successful
  2911. Desc:    change the login directory for the calling workstation
  2912. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2913.       Alloy NTNX
  2914. SeeAlso: AH=D7h,AH=E3h/SF=14h
  2915.  
  2916. Format of request buffer:
  2917. Offset    Size    Description
  2918.  00h    WORD    length of following data (max 102h)
  2919.  02h    BYTE    0Ah (subfunction "Enter Login Area")
  2920.  03h    BYTE    number of local drives
  2921.  04h    BYTE    length of subdirectory name (00h-FFh)
  2922.  05h  N BYTEs    name of subdirectory under SYS:LOGIN where to find the login
  2923.         utility
  2924.  
  2925. Format of reply buffer:
  2926. Offset    Size    Description
  2927.  00h    WORD    (call) 0000h (no data returned)
  2928. --------N-21E3--SF0C-------------------------
  2929. INT 21 U - Novell NetWare - VERIFY NETWORK SERIAL NUMBER
  2930.     AH = E3h subfn 0Ch
  2931.     DS:SI -> request buffer (see below)
  2932.     ES:DI -> reply buffer (see below)
  2933. Return: AL = status
  2934.         00h successful
  2935. Note:    if the network serial number to be verified is correct, the reply
  2936.       buffer will contain the corresponding application number
  2937. SeeAlso: AH=E3h/SF=12h
  2938.  
  2939. Format of request buffer:
  2940. Offset    Size    Description
  2941.  00h    WORD    0005h (length of following data)
  2942.  02h    BYTE    0Ch (subfunction "Verify Network Serial Number")
  2943.  03h    DWORD    (big-endian) network serial number to verify
  2944.  
  2945. Format of reply buffer:
  2946. Offset    Size    Description
  2947.  00h    WORD    (call) 0002h (size of following results buffer)
  2948.  02h    WORD    (big-endian) application number
  2949. --------N-21E3--SF0D-------------------------
  2950. INT 21 - Novell NetWare - MESSAGE SERVICES - LOG NETWORK MESSAGE
  2951.     AH = E3h subfn 0Dh
  2952.     DS:SI -> request buffer (see below)
  2953.     ES:DI -> reply buffer (see below)
  2954. Return: AL = status
  2955.         00h successful
  2956. Desc:    append a line to the default file server's NET$LOG.MSG file
  2957. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2958.       Alloy NTNX
  2959. SeeAlso: AH=E1h/SF=09h
  2960.  
  2961. Format of request buffer:
  2962. Offset    Size    Description
  2963.  00h    WORD    length of following data (max 52h)
  2964.  02h    BYTE    0Dh (subfunction "Log Network Message")
  2965.  03h    BYTE    length of message (01h-50h)
  2966.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  2967. --------N-21E3--SF0E-------------------------
  2968. INT 21 - Novell NetWare - FILE SERVER - GET DISK UTILIZATION
  2969.     AH = E3h subfn 0Eh
  2970.     DS:SI -> request buffer (see below)
  2971.     ES:DI -> reply buffer (see below)
  2972. Return: AL = status
  2973.         00h successful
  2974.         98h nonexistent volume
  2975.         F2h not permitted to read object
  2976. Notes:    this function is supported by Advanced NetWare 2.1+
  2977.     the caller must have bindery object read privileges
  2978. SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  2979.  
  2980. Format of request buffer:
  2981. Offset    Size    Description
  2982.  00h    WORD    0005h (length of following data)
  2983.  02h    BYTE    0Eh (subfunction "Get Disk Utilization")
  2984.  03h    BYTE    volume number (00h-1Fh)
  2985.  04h    DWORD    (big-endian) object ID
  2986.  
  2987. Format of reply buffer:
  2988. Offset    Size    Description
  2989.  00h    WORD    (call) 000Bh (size of following results buffer)
  2990.  02h    BYTE    volume number (00h-1Fh)
  2991.  03h    DWORD    (big-endian) object ID
  2992.  07h    WORD    (big-endian) directories used by object
  2993.  09h    WORD    (big-endian) files created by object
  2994.  0Bh    WORD    (big-endian) disk blocks used by object-created files
  2995. --------N-21E3--SF0F-------------------------
  2996. INT 21 - Novell NetWare - FILE SERVICES - SCAN FILE INFORMATION
  2997.     AH = E3h subfn 0Fh
  2998.     DS:SI -> request buffer (see below)
  2999.     ES:DI -> reply buffer (see below)
  3000. Return: AL = status
  3001.         00h successful
  3002.         89h not permitted to search directory
  3003.         FFh no more matching files
  3004. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3005. SeeAlso: AH=B6h,AH=E3h/SF=10h
  3006.  
  3007. Format of request buffer:
  3008. Offset    Size    Description
  3009.  00h    WORD    length of following data (max 105h)
  3010.  02h    BYTE    0Fh (subfunction "Scan File Information")
  3011.  03h    WORD    (big-endian) sequence number
  3012.         FFFFh on first call
  3013.  05h    BYTE    directory handle or 00h
  3014.  06h    BYTE    search attributes (see AX=4301h)
  3015.  07h    BYTE    length of filespec
  3016.  08h  N BYTEs    ASCIZ uppercase filespec
  3017.  
  3018. Format of reply buffer:
  3019. Offset    Size    Description
  3020.  00h    WORD    (call) 005Eh (size of following results buffer)
  3021.  02h    WORD    next sequence number (place in request buffer for next call)
  3022.  04h 14 BYTEs    ASCIZ filename
  3023.  12h    BYTE    file attributes (see AX=4301h for format)
  3024.  13h    BYTE    extended file attributes (see AH=B6h for format)
  3025.  14h    DWORD    (big-endian) file size in bytes
  3026.  18h    WORD    (big-endian) file's creation date (see AX=5700h for format)
  3027.  1Ah    WORD    (big-endian) date of last access (see AX=5700h for format)
  3028.  1Ch    DWORD    (big-endian) date and time of last update (see AH=E2h/SF=02h)
  3029.  20h    DWORD    (big-endian) object ID of owner
  3030.  24h    DWORD    (big-endian) date and time last archived (see AH=E2h/SF=02h)
  3031.  28h 55 BYTEs    reserved
  3032. Note:    the official documentation erroneously lists the field at offset 04h as
  3033.       15 bytes and thus shifts the remaining fields by one byte
  3034. --------N-21E3--SF10-------------------------
  3035. INT 21 - Novell NetWare - FILE SERVICES - SET FILE INFORMATION
  3036.     AH = E3h subfn 10h
  3037.     DS:SI -> request buffer (see below)
  3038.     ES:DI -> reply buffer (see below)
  3039. Return: AL = status
  3040.         00h successful
  3041. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3042.     the caller must have modify privileges on the directory containing the
  3043.       file
  3044. SeeAlso: AH=B6h,AH=E3h/SF=0Fh
  3045.  
  3046. Format of request buffer:
  3047. Offset    Size    Description
  3048.  00h    WORD    length of following data (max 151h)
  3049.  02h    BYTE    10h (subfunction "Set File Information")
  3050.  03h    BYTE    file attributes (see AX=4301h for format)
  3051.  04h    BYTE    extended file attributes (see AH=B6h for format)
  3052.  05h  4 BYTEs    reserved
  3053.  09h    WORD    (big-endian) file's creation date (see AX=5700h for format)
  3054.  0Bh    WORD    (big-endian) date of last access (see AX=5700h for format)
  3055.  0Dh    DWORD    (big-endian) date and time of last update (see AH=E2h/SF=02h)
  3056.  11h    DWORD    (big-endian) object ID of owner
  3057.  15h    DWORD    (big-endian) date and time last archived (see AH=E2h/SF=02h)
  3058.  19h 56 BYTEs    reserved
  3059.  51h    BYTE    directory handle or 00h
  3060.  52h    BYTE    search attributes (see AX=4301h for format)
  3061.  53h    BYTE    length of filename
  3062.  54h  N BYTEs    filename
  3063. Format of reply buffer:
  3064. Offset    Size    Description
  3065.  00h    WORD    (call) 0000h (no results returned)
  3066. --------N-21E3--SF11-------------------------
  3067. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER INFORMATION
  3068.     AH = E3h subfn 11h
  3069.     DS:SI -> request buffer (see below)
  3070.     ES:DI -> reply buffer (see below)
  3071. Return: AL = status
  3072.         00h successful
  3073. Desc:    determine the version of software installed on the file server and
  3074.       how it is configured
  3075. Note:    this function is supported by Advanced NetWare 2.1+
  3076. SeeAlso: AH=E3h/SF=0Eh,AE3h/SF=12h,AH=E3h/SF=CDh,AH=E3h/SF=D3h,AH=E3h/SF=E7h
  3077. SeeAlso: AH=E7h
  3078.  
  3079. Format of request buffer:
  3080. Offset    Size    Description
  3081.  00h    WORD    0001h (length of following data)
  3082.  02h    BYTE    11h (subfunction "Get File Server Information")
  3083.  
  3084. Format of reply buffer:
  3085. Offset    Size    Description
  3086.  00h    WORD    (call) 0080h (size of following results buffer)
  3087.  02h 48 BYTEs    server's name
  3088.  32h    BYTE    NetWare version
  3089.  33h    BYTE    NetWare subversion (0-99)
  3090.  34h    WORD    (big-endian) number of connections supported
  3091.  36h    WORD    (big-endian) number of connections in use
  3092.  38h    WORD    (big-endian) maximum connected volumes
  3093. ---Advanced NetWare 2.1+ ---
  3094.  3Ah    BYTE    operating system revision number
  3095.  3Bh    BYTE    fault tolerance (SFT) level
  3096.  3Ch    BYTE    TTS level
  3097.  3Dh    WORD    (big-endian) maximum simultaneously-used connections
  3098.  3Fh    BYTE    accounting version
  3099.  40h    BYTE    VAP version
  3100.  41h    BYTE    queueing version
  3101.  42h    BYTE    print server version
  3102.  43h    BYTE    virtual console version
  3103.  44h    BYTE    security restrictions level
  3104.  45h    BYTE    internetwork bridge version
  3105.  46h 60 BYTEs    reserved
  3106. --------N-21E3--SF12-------------------------
  3107. INT 21 - Novell NetWare - GET NETWORK SERIAL NUMBER
  3108.     AH = E3h subfn 12h
  3109.     AL = 00h
  3110.     BX = CX = DX = 0000h
  3111.     DS:SI -> request buffer (see below)
  3112.     ES:DI -> reply buffer (see below)
  3113. Return: AL = status
  3114.         00h successful
  3115. Desc:    return the serial number and application number for the software
  3116.       installed on the file server
  3117. Notes:    this function is supported by Advanced NetWare 2.1+
  3118.     reportedly, the workstation crashes if AL,BX,CX, and DX are not all
  3119.       zero
  3120. SeeAlso: AH=E3h/SF=0Ch,AH=E3h/SF=11h
  3121.  
  3122. Format of request buffer:
  3123. offset     size    description
  3124.  00h     WORD    0001h (length of following data)
  3125.  02h     BYTE    12h (subfunction "Get Serial Number")
  3126.  
  3127. Format of reply buffer:
  3128. offset     size    description
  3129.  00h     WORD    (call) 0006h (size of following results buffer)
  3130.  02h   4 BYTEs    (big-endian) NetWare server serial number
  3131.  06h   2 BYTEs    (big-endian) NetWare application serial number
  3132. --------N-21E3--SF13-------------------------
  3133. INT 21 - Novell NetWare - CONNECTION SERVICES - GET INTERNET ADDRESS
  3134.     AH = E3h subfn 13h
  3135.     DS:SI -> request buffer (see below)
  3136.     ES:DI -> reply buffer (see below)
  3137. Return: AL = status
  3138.         00h successful
  3139. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3140. SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h,AH=EEh"NetWare"
  3141.  
  3142. Format of request buffer:
  3143. Offset    Size    Description
  3144.  00h    WORD    0002h (length of following data)
  3145.  02h    BYTE    13h (subfunction "Get Internet Address")
  3146.  03h    BYTE    logical connection number (01h-64h)
  3147.  
  3148. Format of reply buffer:
  3149. Offset    Size    Description
  3150.  00h    WORD    (call) 000Ch (length of following results buffer)
  3151.  02h  4 BYTEs    network number
  3152.  06h  6 BYTEs    physical node address
  3153.  0Ch  2 BYTEs    socket number
  3154. --------N-21E3--SF14-------------------------
  3155. INT 21 - Novell NetWare - CONNECTION SERVICES - LOGIN TO FILE SERVER
  3156.     AH = E3h subfn 14h
  3157.     DS:SI -> request buffer (see below)
  3158.     ES:DI -> reply buffer (see below)
  3159. Return: AL = status
  3160.         00h successful
  3161. Desc:    this function retrieves a list indicating the connection numbers under
  3162.       which a bindery object is logged into the default file server
  3163. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3164. SeeAlso: AH=D7h"NetWare",AH=F1h"NetWare"
  3165.  
  3166. Format of request buffer:
  3167. Offset    Size    Description
  3168.  00h    WORD    length of following data (max B3h)
  3169.  02h    BYTE    14h (subfunction "Login To File Server")
  3170.  03h    WORD    (big-endian) type of object
  3171.  05h    BYTE    length of object's name (01h-2Fh)
  3172.  06h  N BYTEs    object's name
  3173.     BYTE    length of password
  3174.       N BYTEs    password
  3175.  
  3176. Format of reply buffer:
  3177. Offset    Size    Description
  3178.  00h    WORD    (call) 0000h (no data returned)
  3179. --------N-21E3--SF15-------------------------
  3180. INT 21 - Novell NetWare - CONNECTION SERVICES - GET OBJECT CONNECTION NUMBERS
  3181.     AH = E3h subfn 15h
  3182.     DS:SI -> request buffer (see below)
  3183.     ES:DI -> reply buffer (see below)
  3184. Return: AL = status
  3185.         00h successful
  3186. Desc:    this function retrieves a list indicating the connection numbers under
  3187.       which a bindery object is logged into the default file server
  3188. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3189. SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h
  3190.  
  3191. Format of request buffer:
  3192. Offset    Size    Description
  3193.  00h    WORD    length of following data (max 33h)
  3194.  02h    BYTE    15h (subfunction "Get Object Connection Numbers")
  3195.  03h    WORD    (big-endian) type of object
  3196.  05h    BYTE    length of object's name (01h-2Fh)
  3197.  06h  N BYTEs    object's name
  3198.  
  3199. Format of reply buffer:
  3200. Offset    Size    Description
  3201.  00h    WORD    (call) length of following results buffer (max 65h)
  3202.  02h    BYTE    number of connections
  3203.  03h  N BYTEs    connection list
  3204. --------N-21E3--SF16-------------------------
  3205. INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION INFORMATION
  3206.     AH = E3h subfn 16h
  3207.     DS:SI -> request buffer (see below)
  3208.     ES:DI -> reply buffer (see below)
  3209. Return: AL = status
  3210.         00h successful
  3211. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3212. SeeAlso: AH=D7h,AH=DCh"NetWare",AH=E3h/SF=14h
  3213.  
  3214. Format of request buffer:
  3215. Offset    Size    Description
  3216.  00h    WORD    0002h (length of following data)
  3217.  02h    BYTE    16h (subfunction "Get Connection Information")
  3218.  03h    BYTE    logical connection number (01h-64h)
  3219.  
  3220. Format of reply buffer:
  3221. Offset    Size    Description
  3222.  00h    WORD    (call) 003Eh (length of following results buffer)
  3223.  02h    DWORD    (big-endian) object ID for object logged in on the connection
  3224.         00000000h if no object logged in
  3225.  06h    WORD    (big-endian) type of object
  3226.  08h 48 BYTEs    name of object
  3227.  38h  7 BYTEs    login time (see below)
  3228. Note:    much of the Novell documentation incorrectly states the reply buffer
  3229.       length as 3Fh instead of 40h, which corresponds to a results length
  3230.       of 3Dh (61) bytes instead of the correct 3Eh (62) bytes
  3231.  
  3232. Format of login time:
  3233. Offset    Size    Description
  3234.  00h    BYTE    year (80-99 = 1980-1999, 00-79 = 2000-2079)
  3235.  01h    BYTE    month (1-12)
  3236.  02h    BYTE    day (1-31)
  3237.  03h    BYTE    hour (0-23)
  3238.  04h    BYTE    minute (0-59)
  3239.  05h    BYTE    second (0-59)
  3240.  06h    BYTE    day of week (0 = Sunday)
  3241. --------N-21E3--SF32-------------------------
  3242. INT 21 - Novell NetWare - BINDERY SERVICES - CREATE BINDERY OBJECT
  3243.     AH = E3h subfn 32h
  3244.     DS:SI -> request buffer (see below)
  3245.     ES:DI -> reply buffer (see below)
  3246. Return: AL = status (see below)
  3247. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3248. SeeAlso: AH=E3h/SF=33h,AH=E3h/SF=34h,AH=E3h/SF=38h,AH=E3h/SF=39h
  3249.  
  3250. Values for status:
  3251.  00h    successful
  3252.  96h    server out of memory
  3253.  EEh    object already exists
  3254.  EFh    invalid name
  3255.  F0h    wildcard not allowed
  3256.  F1h    invalid bindery security level
  3257.  F3h    not permitted to rename object
  3258.  F4h    not permitted to delete objects
  3259.  F5h    not permitted to create objects
  3260.  FCh    no such object
  3261.  FEh    server bindery locked
  3262.  FFh    bindery failure
  3263.  
  3264. Format of request buffer:
  3265. Offset    Size    Description
  3266.  00h    WORD    length of following data (max 35h)
  3267.  02h    BYTE    32h (subfunction "Create Bindery Object")
  3268.  03h    BYTE    object flag
  3269.         00h static
  3270.         01h dynamic
  3271.  04h    BYTE    object security levels
  3272.  05h    WORD    (big-endian) type of object
  3273.  07h    BYTE    length of object's name
  3274.  08h  N BYTEs    object's name
  3275.  
  3276. Format of reply buffer:
  3277. Offset    Size    Description
  3278.  00h    WORD    0000h (no data returned)
  3279. --------N-21E3--SF33-------------------------
  3280. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT
  3281.     AH = E3h subfn 33h
  3282.     DS:SI -> request buffer (see below)
  3283.     ES:DI -> reply buffer (see below)
  3284. Return: AL = status (see AH=E3h/SF=32h)
  3285. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3286. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=34h
  3287.  
  3288. Format of request buffer:
  3289. Offset    Size    Description
  3290.  00h    WORD    length of following data (max 33h)
  3291.  02h    BYTE    33h (subfunction "Delete Bindery Object")
  3292.  03h    WORD    (big-endian) type of object
  3293.  05h    BYTE    length of object's name (01h-2Fh)
  3294.  06h  N BYTEs    object's name
  3295.  
  3296. Format of reply buffer:
  3297. Offset    Size    Description
  3298.  00h    WORD    (call) 0000h (no data returned)
  3299. --------N-21E3--SF34-------------------------
  3300. INT 21 - Novell NetWare - BINDERY SERVICES - RENAME BINDERY OBJECT
  3301.     AH = E3h subfn 34h
  3302.     DS:SI -> request buffer (see below)
  3303.     ES:DI -> reply buffer (see below)
  3304. Return: AL = status (see AH=E3h/SF=32h)
  3305. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3306. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h
  3307.  
  3308. Format of request buffer:
  3309. Offset    Size    Description
  3310.  00h    WORD    length of following data (max 63h)
  3311.  02h    BYTE    34h (subfunction "Rename Bindery Object")
  3312.  03h    WORD    (big-endian) type of object
  3313.  05h    BYTE    length of object's name (01h-2Fh)
  3314.  06h  N BYTEs    object's name
  3315.     BYTE    length of new name (01h-2Fh)
  3316.       N BYTEs    new name
  3317.  
  3318. Format of reply buffer:
  3319. Offset    Size    Description
  3320.  00h    WORD    (call) 0000h (no data returned)
  3321. --------N-21E3--SF35-------------------------
  3322. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT ID
  3323.     AH = E3h subfn 35h
  3324.     DS:SI -> request buffer (see below)
  3325.     ES:DI -> reply buffer (see below)
  3326. Return: AL = status
  3327.         00h successful
  3328.         96h server out of memory
  3329.         FCh no such object
  3330.         FEh server bindery locked
  3331.         FFh bindery failure
  3332. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3333.     the requesting workstation must be logged into the file server with
  3334.       read access to the bindery object
  3335. SeeAlso: AH=E3h/SF=36h,AH=E3h/SF=44h
  3336.  
  3337. Format of request buffer:
  3338. Offset    Size    Description
  3339.  00h    WORD    length of following data (max 33h)
  3340.  02h    BYTE    35h (subfunction "Get Bindery Object ID")
  3341.  03h    WORD    (big-endian) type of object
  3342.  05h    BYTE    length of object's name
  3343.  06h  N BYTEs    object's name
  3344.  
  3345. Format of reply buffer:
  3346. Offset    Size    Description
  3347.  00h    WORD    (call) 0036h (length of following buffer space)
  3348.  02h    DWORD    (big-endian) object ID
  3349.  06h    WORD    (big-endian) type of object
  3350.  08h 48 BYTEs    object name
  3351. --------N-21E3--SF36-------------------------
  3352. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT NAME
  3353.     AH = E3h subfn 36h
  3354.     DS:SI -> request buffer (see below)
  3355.     ES:DI -> reply buffer (see below)
  3356. Return: AL = status (see below)
  3357. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3358.     the requesting workstation must be logged into the file server with
  3359.       read access to the bindery object
  3360. SeeAlso: AH=E3h/SF=35h,AH=E3h/SF=44h
  3361.  
  3362. Values for status:
  3363.  00h    successful
  3364.  96h    server out of memory
  3365.  EFh    invalid name
  3366.  F0h    wildcard not allowed
  3367.  FCh    no such object
  3368.  FEh    server bindery locked
  3369.  FFh    bindery failure
  3370.  
  3371. Format of request buffer:
  3372. Offset    Size    Description
  3373.  00h    WORD    0005h (length of following data)
  3374.  02h    BYTE    36h (subfunction "Get Bindery Object Name")
  3375.  03h    DWORD    (big-endian) object ID
  3376.  
  3377. Format of reply buffer:
  3378. Offset    Size    Description
  3379.  00h    WORD    (call) 0036h (length of following buffer space)
  3380.  02h    DWORD    (big-endian) object ID
  3381.  06h    WORD    (big-endian) type of object
  3382.  08h 48 BYTEs    object name
  3383. --------N-21E3--SF37-------------------------
  3384. INT 21 - Novell NetWare - BINDERY SERVICES - SCAN BINDERY OBJECT
  3385.     AH = E3h subfn 37h
  3386.     DS:SI -> request buffer (see below)
  3387.     ES:DI -> reply buffer (see below)
  3388. Return: AL = status (see AH=E3h/SF=36h)
  3389. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3390.     the requesting workstation must be logged into the file server with
  3391.       read access to the bindery object
  3392. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h,AH=E3h/SF=38h,AH=E3h/SF=3Ch
  3393.  
  3394. Format of request buffer:
  3395. Offset    Size    Description
  3396.  00h    WORD    length of following data (max 37h)
  3397.  02h    BYTE    37h (subfunction "Scan Bindery Object")
  3398.  03h    DWORD    (big-endian) last object ID
  3399.  07h    WORD    (big-endian) type of object
  3400.  09h    BYTE    length of object's name
  3401.  0Ah  N BYTEs    object's name
  3402.  
  3403. Format of reply buffer:
  3404. Offset    Size    Description
  3405.  00h    WORD    (call) 0039h (length of following buffer space)
  3406.  02h    DWORD    (big-endian) object ID
  3407.         FFFFFFFFh for first call
  3408.  06h    WORD    (big-endian) type of object
  3409.  08h 48 BYTEs    object name (counted string)
  3410.  38h    BYTE    object flag (00h static, 01h dynamic)
  3411.  39h    BYTE    object's security levels
  3412.  3Ah    BYTE    object properties flag (00h no, FFh yes)
  3413. --------N-21E3--SF38-------------------------
  3414. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT SECURITY
  3415.     AH = E3h subfn 38h
  3416.     DS:SI -> request buffer (see below)
  3417.     ES:DI -> reply buffer (see below)
  3418. Return: AL = status
  3419.         00h successful
  3420.         96h server out of memory
  3421.         F0h wildcard not allowed
  3422.         F1h invalid bindery security level
  3423.         FBh no such property
  3424.         FCh no such object
  3425.         FEh server bindery locked
  3426.         FFh bindery failure
  3427. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3428. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh
  3429.  
  3430. Format of request buffer:
  3431. Offset    Size    Description
  3432.  00h    WORD    length of following data (max 34h)
  3433.  02h    BYTE    38h (subfunction "Change Bindery Object Security")
  3434.  03h    BYTE    new security levels
  3435.  04h    WORD    (big-endian) type of object
  3436.  06h    BYTE    length of object's name (01h-2Fh)
  3437.  07h  N BYTEs    object name
  3438.  
  3439. Format of reply buffer:
  3440. Offset    Size    Description
  3441.  00h    WORD    (call) 0000h (no data returned)
  3442. --------N-21E3--SF39-------------------------
  3443. INT 21 - Novell NetWare - BINDERY SERVICES - CREATE PROPERTY
  3444.     AH = E3h subfn 39h
  3445.     DS:SI -> request buffer (see below)
  3446.     ES:DI -> reply buffer (see below)
  3447. Return: AL = status (see below)
  3448. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3449. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh
  3450.  
  3451. Values for status:
  3452.  00h    successful
  3453.  96h    server out of memory
  3454.  EDh    property already exists
  3455.  EFh    invalid name
  3456.  F0h    wildcard not allowed
  3457.  F1h    invalid bindery security level
  3458.  F6h    not permitted to delete properties
  3459.  F7h    not permitted to create properties
  3460.  FBh    no such property
  3461.  FCh    no such object
  3462.  FEh    server bindery locked
  3463.  FFh    bindery failure
  3464.  
  3465. Format of request buffer:
  3466. Offset    Size    Description
  3467.  00h    WORD    length of following data (max 45h)
  3468.  02h    BYTE    39h (subfunction "Create Property")
  3469.  03h    WORD    (big-endian) type of object
  3470.  05h    BYTE    length of object's name (01h-2Fh)
  3471.  06h  N BYTEs    object's name
  3472.     BYTE    property flags
  3473.     BYTE    property security levels
  3474.     BYTE    length of property's name (01h-0Fh)
  3475.       N BYTEs    property's name
  3476.  
  3477. Format of reply buffer:
  3478. Offset    Size    Description
  3479.  00h    WORD    (call) 0000h (no data returned)
  3480. --------N-21E3--SF3A-------------------------
  3481. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE PROPERTY
  3482.     AH = E3h subfn 3Ah
  3483.     DS:SI -> request buffer (see below)
  3484.     ES:DI -> reply buffer (see below)
  3485. Return: AL = status (see AH=E3h/SF=39h)
  3486. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3487. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=39h
  3488.  
  3489. Format of request buffer:
  3490. Offset    Size    Description
  3491.  00h    WORD    length of following data (max 43h)
  3492.  02h    BYTE    3Ah (subfunction "Delete Property")
  3493.  03h    WORD    (big-endian) type of object
  3494.  05h    BYTE    length of object's name (01h-2Fh)
  3495.  06h  N BYTEs    object's name
  3496.     BYTE    length of property's name (01h-0Fh)
  3497.       N BYTEs    property's name
  3498.  
  3499. Format of reply buffer:
  3500. Offset    Size    Description
  3501.  00h    WORD    (call) 0000h (no data returned)
  3502. --------N-21E3--SF3B-------------------------
  3503. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE PROPERTY SECURITY
  3504.     AH = E3h subfn 3Bh
  3505.     DS:SI -> request buffer (see below)
  3506.     ES:DI -> reply buffer (see below)
  3507. Return: AL = status
  3508.         00h successful
  3509.         96h server out of memory
  3510.         F0h wildcard not allowed
  3511.         F1h invalid bindery security level
  3512.         FBh no such property
  3513.         FCh no such object
  3514.         FEh server bindery locked
  3515.         FFh bindery failure
  3516. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3517. SeeAlso: AH=E3h/SF=38h
  3518.  
  3519. Format of request buffer:
  3520. Offset    Size    Description
  3521.  00h    WORD    length of following data (max 44h)
  3522.  02h    BYTE    3Bh (subfunction "Change Property Security")
  3523.  03h    WORD    (big-endian) type of object
  3524.  05h    BYTE    length of object's name (01h-2Fh)
  3525.  06h  N BYTEs    object name
  3526.     BYTE    new property security levels
  3527.     BYTE    length of property's name
  3528.       N BYTEs    property name
  3529.  
  3530. Format of reply buffer:
  3531. Offset    Size    Description
  3532.  00h    WORD    (call) 0000h (no data returned)
  3533. --------N-21E3--SF3C-------------------------
  3534. INT 21 - Novell NetWare - BINDERY SERVICES - SCAN PROPERTY
  3535.     AH = E3h subfn 3Ch
  3536.     DS:SI -> request buffer (see below)
  3537.     ES:DI -> reply buffer (see below)
  3538. Return: AL = status (see below)
  3539. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3540. SeeAlso: AH=E3h/SF=37h,AH=E3h/SF=3Bh
  3541.  
  3542. Values for status:
  3543.  00h    successful
  3544.  96h    server out of memory
  3545.  F1h    invalid bindery security level
  3546.  FBh    no such property
  3547.  FCh    no such object
  3548.  FEh    server bindery locked
  3549.  FFh    bindery failure
  3550.  
  3551. Format of request buffer:
  3552. Offset    Size    Description
  3553.  00h    WORD    length of following data (max 47h)
  3554.  02h    BYTE    3Ch (subfunction "Scan Property")
  3555.  03h    WORD    (big-endian) type of object
  3556.  05h    BYTE    length of object's name (01h-2Fh)
  3557.  06h  N BYTEs    object name
  3558.     DWORD    (big-endian) sequence number
  3559.         FFFFFFFFh for first call
  3560.     BYTE    length of property's name (01h-0Fh)
  3561.       N BYTEs    property's name
  3562.  
  3563. Format of reply buffer:
  3564. Offset    Size    Description
  3565.  00h    WORD    (call) 0018h (length of following results buffer)
  3566.  02h 16 BYTEs    property name
  3567.  12h    BYTE    property flags
  3568.  13h    BYTE    property security levels
  3569.  14h    DWORD    (big-endian) sequence number
  3570.  18h    BYTE    property value flag (00h no, FFh yes)
  3571.  19h    BYTE    more properties (00h no, FFh yes)
  3572. --------N-21E3--SF3D-------------------------
  3573. INT 21 - Novell NetWare - BINDERY SERVICES - READ PROPERTY VALUE
  3574.     AH = E3h subfn 3Dh
  3575.     DS:SI -> request buffer (see below)
  3576.     ES:DI -> reply buffer (see below)
  3577. Return: AL = status (see below)
  3578. Desc:    retrieve one 128-byte segment of the specified property's value
  3579. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3580. SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh
  3581.  
  3582. Values for status:
  3583.  00h    successful
  3584.  96h    server out of memory
  3585.  E8h    not item property
  3586.  ECh    no such segment
  3587.  F0h    wildcard not allowed
  3588.  F1h    invalid bindery security level
  3589.  F8h    not permitted to write property
  3590.  F9h    not permitted to read property
  3591.  FBh    no such property
  3592.  FCh    no such object
  3593.  FEh    server bindery locked
  3594.  FFh    bindery failure
  3595.  
  3596. Format of request buffer:
  3597. Offset    Size    Description
  3598.  00h    WORD    length of following data (max 44h)
  3599.  02h    BYTE    3Dh (subfunction "Read Property Value")
  3600.  03h    WORD    (big-endian) type of object
  3601.  05h    BYTE    length of object's name (01h-2Fh)
  3602.  06h  N BYTEs    object name
  3603.     BYTE    segment number (01h on first call, increment until done)
  3604.     BYTE    length of property's name (01h-0Fh)
  3605.       N BYTEs    property name
  3606.  
  3607. Format of reply buffer:
  3608. Offset    Size    Description
  3609.  00h    WORD    (call) 0082h (length of following results buffer)
  3610.  02h 128 BYTEs    property's value
  3611.  82h    BYTE    more segments (00h no, FFh yes)
  3612.  83h    BYTE    property's flags
  3613. --------N-21E3--SF3E-------------------------
  3614. INT 21 - Novell NetWare - BINDERY SERVICES - WRITE PROPERTY VALUE
  3615.     AH = E3h subfn 3Eh
  3616.     DS:SI -> request buffer (see below)
  3617.     ES:DI -> reply buffer (see below)
  3618. Return: AL = status (see AH=E3h/SF=3Dh)
  3619. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3620. SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh
  3621.  
  3622. Format of request buffer:
  3623. Offset    Size    Description
  3624.  00h    WORD    length of following data (max C5h)
  3625.  02h    BYTE    3Eh (subfunction "Write Property Value")
  3626.  03h    WORD    (big-endian) type of object
  3627.  05h    BYTE    length of object's name (01h-2Fh)
  3628.  06h  N BYTEs    object name
  3629.     BYTE    segment number (01h on first call, increment until done)
  3630.     BYTE    erase remaining segments (00h no, FFh yes)
  3631.     BYTE    length of property's name (01h-0Fh)
  3632.       N BYTEs    property name
  3633.     128 BYTEs    property value segment
  3634.  
  3635. Format of reply buffer:
  3636. Offset    Size    Description
  3637.  00h    WORD    (call) 0000h (no data returned)
  3638. --------N-21E3--SF3F-------------------------
  3639. INT 21 - Novell NetWare - BINDERY SERVICES - VERIFY BINDERY OBJECT PASSWORD
  3640.     AH = E3h subfn 3Fh
  3641.     DS:SI -> request buffer (see below)
  3642.     ES:DI -> reply buffer (see below)
  3643. Return: AL = status (see below)
  3644. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3645. SeeAlso: AH=E3h/SF=40h
  3646.  
  3647. Values for status:
  3648.  00h    successful
  3649.  96h    server out of memory
  3650.  F0h    wildcard not allowed
  3651.  FBh    no such property
  3652.  FCh    no such object
  3653.  FEh    server bindery locked
  3654.  FFh    bindery failure: no such object, bad password, no password for object,
  3655.             or invalid old password
  3656.  
  3657. Format of request buffer:
  3658. Offset    Size    Description
  3659.  00h    WORD    length of following data (max 133h)
  3660.  02h    BYTE    3Fh (subfunction "Verify Bindery Object Password")
  3661.  03h    WORD    (big-endian) type of object
  3662.  05h    BYTE    length of object's name (01h-2Fh)
  3663.  06h  N BYTEs    object name
  3664.     BYTE    length of password (00h-7Fh)
  3665.       N BYTEs    password
  3666.  
  3667. Format of reply buffer:
  3668. Offset    Size    Description
  3669.  00h    WORD    (call) 0000h (no data returned)
  3670. --------N-21E3--SF40-------------------------
  3671. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT PASSWORD
  3672.     AH = E3h subfn 40h
  3673.     DS:SI -> request buffer (see below)
  3674.     ES:DI -> reply buffer (see below)
  3675. Return: AL = status (see AH=E3h/SF=3Fh)
  3676. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3677. SeeAlso: AH=E3h/SF=3Fh,AH=E3h/SF=41h
  3678.  
  3679. Format of request buffer:
  3680. Offset    Size    Description
  3681.  00h    WORD    length of following data (max 133h)
  3682.  02h    BYTE    40h (subfunction "Change Bindery Object Password")
  3683.  03h    WORD    (big-endian) type of object
  3684.  05h    BYTE    length of object's name (01h-2Fh)
  3685.  06h  N BYTEs    object name
  3686.     BYTE    length of old password (00h-7Fh)
  3687.       N BYTEs    old password
  3688.     BYTE    length of new password (00h-7Fh)
  3689.       N BYTEs    new password
  3690.  
  3691. Format of reply buffer:
  3692. Offset    Size    Description
  3693.  00h    WORD    (call) 0000h (no data returned)
  3694. --------N-21E3--SF41-------------------------
  3695. INT 21 - Novell NetWare - BINDERY SERVICES - ADD BINDERY OBJECT TO SET
  3696.     AH = E3h subfn 41h
  3697.     DS:SI -> request buffer (see below)
  3698.     ES:DI -> reply buffer (see below)
  3699. Return: AL = status (see below)
  3700. Desc:    add the specified object to a set property
  3701. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3702. SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h
  3703.  
  3704. Values for status:
  3705.  00h    successful
  3706.  96h    server out of memory
  3707.  E9h    member already exists
  3708.  EAh    member does not exist
  3709.  EBh    not a group property
  3710.  F0h    wildcard not allowed
  3711.  F8h    can't write property
  3712.  F9h    not permitted to read property
  3713.  FBh    no such property
  3714.  FCh    no such object
  3715.  FEh    server bindery locked
  3716.  FFh    bindery failure
  3717.  
  3718. Format of request buffer:
  3719. Offset    Size    Description
  3720.  00h    WORD    length of following data (max 75h)
  3721.  02h    BYTE    41h (subfunction "Add Bindery Object to Set")
  3722.  03h    WORD    (big-endian) type of object
  3723.  05h    BYTE    length of object's name
  3724.  06h  N BYTEs    object name
  3725.     BYTE    length of property name (01h-0Fh)
  3726.       N BYTEs    property name
  3727.     WORD    (big-endian) type of member object
  3728.     BYTE    length of member object's name
  3729.       N BYTEs    member object's name
  3730.  
  3731. Format of reply buffer:
  3732. Offset    Size    Description
  3733.  00h    WORD    (call) 0000h (no data returned)
  3734. --------N-21E3--SF42-------------------------
  3735. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT FROM SET
  3736.     AH = E3h subfn 42h
  3737.     DS:SI -> request buffer (see below)
  3738.     ES:DI -> reply buffer (see below)
  3739. Return: AL = status (see AH=E3h/SF=41h)
  3740. Desc:    delete the specified object from a set property
  3741. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3742. SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h
  3743.  
  3744. Format of request buffer:
  3745. Offset    Size    Description
  3746.  00h    WORD    length of following data (max 75h)
  3747.  02h    BYTE    42h (subfunction "Delete Bindery Object from Set")
  3748.  03h    WORD    (big-endian) type of object
  3749.  05h    BYTE    length of object's name
  3750.  06h  N BYTEs    object name
  3751.     BYTE    length of property name (01h-0Fh)
  3752.       N BYTEs    property name
  3753.     WORD    (big-endian) type of member object
  3754.     BYTE    length of member object's name
  3755.       N BYTEs    member object's name
  3756.  
  3757. Format of reply buffer:
  3758. Offset    Size    Description
  3759.  00h    WORD    (call) 0000h (no data returned)
  3760. --------N-21E3--SF43-------------------------
  3761. INT 21 - Novell NetWare - BINDERY SERVICES - IS BINDERY OBJECT IN SET
  3762.     AH = E3h subfn 43h
  3763.     DS:SI -> request buffer (see below)
  3764.     ES:DI -> reply buffer (see below)
  3765. Return: AL = status (see AH=E3h/SF=41h)
  3766. Desc:    determine whether the specified object is a member of the given set
  3767.       property
  3768. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3769.     the caller must have read access to the property
  3770. SeeAlso: AH=E3h/SF=41h,AH=E3h/SF=42h
  3771.  
  3772. Format of request buffer:
  3773. Offset    Size    Description
  3774.  00h    WORD    length of following data (max 75h)
  3775.  02h    BYTE    43h (subfunction "Is Bindery Object In Set")
  3776.  03h    WORD    (big-endian) type of object
  3777.  05h    BYTE    length of object's name
  3778.  06h  N BYTEs    object's name
  3779.     BYTE    length of property's name
  3780.       N BYTEs    property's name
  3781.     WORD    (big-endian) type of member object
  3782.     BYTE    length of member object's name
  3783.       N BYTEs    member object's name
  3784.  
  3785. Format of reply buffer:
  3786. Offset    Size    Description
  3787.  00h    WORD    (call) 0000h (no data returned)
  3788. --------N-21E3--SF44-------------------------
  3789. INT 21 - Novell NetWare - BINDERY SERVICES - CLOSE BINDERY
  3790.     AH = E3h subfn 44h
  3791.     DS:SI -> request buffer (see below)
  3792.     ES:DI -> reply buffer (see below)
  3793. Return: AL = status
  3794.         00h successful
  3795. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3796. SeeAlso: AH=E3h/SF=45h
  3797.  
  3798. Format of request buffer:
  3799. Offset    Size    Description
  3800.  00h    WORD    0001h (length of following data)
  3801.  02h    BYTE    44h (subfunction "Close Bindery")
  3802.  
  3803. Format of reply buffer:
  3804. Offset    Size    Description
  3805.  00h    WORD    (call) 0000h (no data returned)
  3806. --------N-21E3--SF45-------------------------
  3807. INT 21 - Novell NetWare - BINDERY SERVICES - OPEN BINDERY
  3808.     AH = E3h subfn 45h
  3809.     DS:SI -> request buffer (see below)
  3810.     ES:DI -> reply buffer (see below)
  3811. Return: AL = status
  3812.         00h successful
  3813. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3814.     the bindery may only be opened by the supervisor or an object with
  3815.       equivalent privileges
  3816. SeeAlso: AH=E3h/SF=44h
  3817.  
  3818. Format of request buffer:
  3819. Offset    Size    Description
  3820.  00h    WORD    0001h (length of following data)
  3821.  02h    BYTE    45h (subfunction "Open Bindery")
  3822.  
  3823. Format of reply buffer:
  3824. Offset    Size    Description
  3825.  00h    WORD    (call) 0000h (no data returned)
  3826. --------N-21E3--SF46-------------------------
  3827. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY ACCESS LEVEL
  3828.     AH = E3h subfn 46h
  3829.     DS:SI -> request buffer (see below)
  3830.     ES:DI -> reply buffer (see below)
  3831. Return: AL = status
  3832.         00h successful
  3833. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3834.  
  3835. Format of request buffer:
  3836. Offset    Size    Description
  3837.  00h    WORD    0001h (length of following data)
  3838.  02h    BYTE    46h (subfunction "Get Bindery Access Level")
  3839.  
  3840. Format of reply buffer:
  3841. Offset    Size    Description
  3842.  00h    WORD    0005h (length of following buffer)
  3843.  02h    BYTE    security levels
  3844.  03h    DWORD    (big-endian) object ID
  3845. --------N-21E3--SF47-------------------------
  3846. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN BINDERY OBJ TRUSTEE PATHS
  3847.     AH = E3h subfn 47h
  3848.     DS:SI -> request buffer (see below)
  3849.     ES:DI -> reply buffer (see below)
  3850. Return: AL = status
  3851.         00h successful
  3852.         96h server out of memory
  3853.         F0h wildcard not allowed
  3854.         F1h invalid bindery security level
  3855.         FCh no such object
  3856.         FEh server bindery locked
  3857.         FFh bindery failure
  3858. Desc:    iterate through the directories to which an object is a trustee
  3859. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3860. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh,AH=E2h/SF=0Eh
  3861.  
  3862. Format of request buffer:
  3863. Offset    Size    Description
  3864.  00h    WORD    0008h (length of following data)
  3865.  02h    BYTE    47h (subfunction "Scan Bindery Object Trustee Paths")
  3866.  03h    BYTE    volume number (00h-1Fh)
  3867.  04h    WORD    (big-endian) last sequence number (FFFFh on first call)
  3868.  06h    DWORD    (big-endian) object ID
  3869.  
  3870. Format of reply buffer:
  3871. Offset    Size    Description
  3872.  00h    WORD    (call) length of following results buffer (max 107h)
  3873.  02h    WORD    (big-endian) next sequence number
  3874.  04h    DWORD    (big-endian) object ID
  3875.  08h    BYTE    trustee directory rights (see AH=E2h/SF=03h)
  3876.  09h    BYTE    length of trustee path
  3877.  0Ah  N BYTEs    trustee path
  3878. --------N-21E3--SF64-------------------------
  3879. INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE
  3880.     AH = E3h subfn 64h
  3881.     DS:SI -> request buffer (see below)
  3882.     ES:DI -> reply buffer (see below)
  3883. Return: AL = status (00h,96h,99h,9Bh,9Ch,EDh-F1h,F5h,F7h,FCh,FEh,FFh)
  3884.         (see below)
  3885. Notes:    this function is supported by Advanced NetWare 2.1+
  3886.     caller must be on a workstation with supervisor privileges
  3887. SeeAlso: AH=E3h/SF=65h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Bh
  3888.  
  3889. Values for status:
  3890.  00h    successful
  3891.  96h    server out of memory
  3892.  99h    directory full
  3893.  9Bh    invalid directory handle
  3894.  9Ch    invalid path
  3895.  D0h    queue error
  3896.  D1h    no such queue
  3897.  D2h    no server for queue
  3898.  D3h    no queue rights
  3899.  D4h    queue full
  3900.  D5h    no queue job
  3901.  D6h    no job rights
  3902.  D7h    queue servicing error
  3903.  D9h    station is not a server
  3904.  DAh    queue halted
  3905.  DBh    too many queue servers
  3906.  EDh    property already exists
  3907.  EEh    object already exists
  3908.  EFh    invalid name
  3909.  F0h    wildcard not allowed
  3910.  F1h    invalid bindery security level
  3911.  F5h    not permitted to create object
  3912.  F7h    not permitted to create property
  3913.  FCh    no such object
  3914.  FEh    server bindery locked
  3915.  FFh    bindery failure
  3916.  
  3917. Format of request buffer:
  3918. Offset    Size    Description
  3919.  00h    WORD    length of following data (max ABh)
  3920.  02h    BYTE    64h (subfunction "Create Queue")
  3921.  03h    WORD    (big-endian) queue type
  3922.  05h    BYTE    length of queue's name (01h-2Fh)
  3923.  06h  N BYTEs    queue's name
  3924.     BYTE    directory handle or 00h
  3925.     BYTE    length of path name (01h-76h)
  3926.       N BYTEs    path name of directory in which to create queue subdirectory
  3927.  
  3928. Format of reply buffer:
  3929. Offset    Size    Description
  3930.  00h    WORD    (call) 0004h (size of following results buffer)
  3931.  02h    DWORD    (big-endian) object ID of queue
  3932. --------N-21E3--SF65-------------------------
  3933. INT 21 - Novell NetWare - QUEUE SERVICES - DESTROY QUEUE
  3934.     AH = E3h subfn 65h
  3935.     DS:SI -> request buffer (see below)
  3936.     ES:DI -> reply buffer (see below)
  3937. Return: AL = status (00h,96h,9Ch,D0h,D1h,FFh) (see also AH=E3h/SF=64h)
  3938.         FFh hardware failure
  3939. Desc:    abort all active jobs, detach all job servers, remove all job entries,
  3940.       delete all job files, remove the queue object and its properties
  3941.       from the bindery, and delete the queue's subdirectory
  3942. Notes:    this function is supported by Advanced NetWare 2.1+
  3943.     caller must have SUPERVISOR privileges
  3944. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=70h
  3945.  
  3946. Format of request buffer:
  3947. Offset    Size    Description
  3948.  00h    WORD    0005h (length of following data)
  3949.  02h    BYTE    65h (subfunction "Destroy Queue")
  3950.  03h    DWORD    (big-endian) object ID of queue
  3951.  
  3952. Format of reply buffer:
  3953. Offset    Size    Description
  3954.  00h    WORD    (call) 0000h (no results returned)
  3955. --------N-21E3--SF66-------------------------
  3956. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE CURRENT STATUS
  3957.     AH = E3h subfn 66h
  3958.     DS:SI -> request buffer (see below)
  3959.     ES:DI -> reply buffer (see below)
  3960. Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  3961. Notes:    this function is supported by Advanced NetWare 2.1+
  3962.     caller must be on a workstation which is security-equivalent to a
  3963.       member of the queue's Q_USERS or Q_OPERATORS properties
  3964. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=67h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
  3965.  
  3966. Format of request buffer:
  3967. Offset    Size    Description
  3968.  00h    WORD    0005h (length of following data)
  3969.  02h    BYTE    66h (subfunction "Read Queue Current Status")
  3970.  03h    DWORD    (big-endian) object ID of queue
  3971.  
  3972. Format of reply buffer:
  3973. Offset    Size    Description
  3974.  00h    WORD    (call) 0085h (size of following results)
  3975.  02h    DWORD    (big-endian) object ID of queue
  3976.  06h    BYTE    status of queue
  3977.         bit 0: operator disabled addition of new jobs
  3978.         bit 1: operator refuses additional job servers attaching
  3979.         bit 2: operator disabled job servicing
  3980.  07h    BYTE    number of jobs in queue (00h-FAh)
  3981.  08h    BYTE    number of servers attached to queue (00h-19h)
  3982.  09h 25 DWORDs    list of object IDs of attached servers
  3983.  6Dh 25 BYTEs    list of attached servers' stations
  3984.  86h    BYTE    (call) maximum number of servers to return
  3985. --------N-21E3--SF67-------------------------
  3986. INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE CURRENT STATUS
  3987.     AH = E3h subfn 67h
  3988.     DS:SI -> request buffer (see below)
  3989.     ES:DI -> reply buffer (see below)
  3990. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,FEh,FFh) (see AH=E3h/SF=64h)
  3991. Notes:    this function is supported by Advanced NetWare 2.1+
  3992.     caller must have operator privileges
  3993. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
  3994.  
  3995. Format of request buffer:
  3996. Offset    Size    Description
  3997.  00h    WORD    0006h (length of following data)
  3998.  02h    BYTE    67h (subfunction "Set Queue Current Status")
  3999.  03h    DWORD    (big-endian) object ID of queue
  4000.  07h    BYTE    queue status
  4001.         bit 0: operator disabled addition of new jobs
  4002.         bit 1: operator refuses additional job servers attaching
  4003.         bit 2: operator disabled job servicing
  4004.  
  4005. Format of reply buffer:
  4006. Offset    Size    Description
  4007.  00h    WORD    (call) 0000h (no results returned)
  4008. --------N-21E3--SF68-------------------------
  4009. INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE JOB AND FILE
  4010.     AH = E3h subfn 68h
  4011.     DS:SI -> request buffer (see below)
  4012.     ES:DI -> reply buffer (see below)
  4013. Return: AL = status (00h,96h,99h,9Ch,D0h-D4h,DAh,EDh,EFh-F1h,F7h,FCh,FEh,FFh)
  4014.         (see AH=E3h/SF=64h)
  4015. Notes:    this function is supported by Advanced NetWare 2.1+
  4016.     caller must be on a workstation which is security-equivalent to a
  4017.       member of the queue's Q_USER property
  4018. SeeAlso: AH=E0h"SPOOLING",AH=E3h/SF=69h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  4019.  
  4020. Format of request buffer:
  4021. Offset    Size    Description
  4022.  00h    WORD    0107h (length of following data)
  4023.  02h    BYTE    68h (subfunction "Close File and Start Queue Job")
  4024.  03h    DWORD    (big-endian) object ID of queue
  4025.  07h    BYTE    client station
  4026.  08h    BYTE    client task number
  4027.  09h    DWORD    (big-endian) object ID of client
  4028.  0Dh    DWORD    (big-endian) object ID of target server
  4029.         FFFFFFFh if any server acceptable
  4030.  11h  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  4031.         FFFFFFFFFFFFh to execute as soon as possible
  4032.  17h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  4033.  1Dh    WORD    (big-endian) job number
  4034.  1Fh    WORD    (big-endian) job type
  4035.  21h    BYTE    job position
  4036.  22h    BYTE    job control flags
  4037.  23h 14 BYTEs    ASCIZ job file name
  4038.  31h  6 BYTEs    job file handle
  4039.  37h    BYTE    server station
  4040.  38h    BYTE    server task number
  4041.  39h    DWORD    (big-endian) object ID of server
  4042.  3Dh 50 BYTEs    ASCIZ job description string
  4043.  6Fh 152 BYTEs    client record area
  4044.  
  4045. Format of reply buffer:
  4046. Offset    Size    Description
  4047.  00h    WORD    (call) 0036h (size of following results buffer)
  4048.  02h    BYTE    client station
  4049.  03h    BYTE    client task number
  4050.  04h    DWORD    (big-endian) object ID of client
  4051.  08h    DWORD    (big-endian) object ID of target server
  4052.  0Ch  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  4053.  12h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  4054.  18h    WORD    (big-endian) job number
  4055.  1Ah    WORD    (big-endian) job type
  4056.  1Ch    BYTE    job position
  4057.  1Dh    BYTE    job control flags
  4058.  1Eh 14 BYTEs    ASCIZ job file name
  4059.  2Ch  6 BYTEs    job file handle
  4060.  32h    BYTE    server station
  4061.  33h    BYTE    server task number
  4062.  34h    DWORD    (big-endian) object ID of server or 00000000h
  4063. --------N-21E3--SF69-------------------------
  4064. INT 21 - Novell NetWare - QUEUE SERVICES - CLOSE FILE AND START QUEUE JOB
  4065.     AH = E3h subfn 69h
  4066.     DS:SI -> request buffer (see below)
  4067.     ES:DI -> reply buffer (see below)
  4068. Return: AL = status (00h,96h,D0h,D1h,D3h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)
  4069. Notes:    this function is supported by Advanced NetWare 2.1+
  4070.     caller must be on the workstation which created the job
  4071. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  4072.  
  4073. Format of request buffer:
  4074. Offset    Size    Description
  4075.  00h    WORD    0007h (length of following data)
  4076.  02h    BYTE    69h (subfunction "Close File and Start Queue Job")
  4077.  03h    DWORD    (big-endian) object ID of queue
  4078.  07h    WORD    (big-endian) job number
  4079.  
  4080. Format of reply buffer:
  4081. Offset    Size    Description
  4082.  00h    WORD    (call) 0000h (no results returned)
  4083. --------N-21E3--SF6A-------------------------
  4084. INT 21 - Novell NetWare - QUEUE SERVICES - REMOVE JOB FROM QUEUE
  4085.     AH = E3h subfn 6Ah
  4086.     DS:SI -> request buffer (see below)
  4087.     ES:DI -> reply buffer (see below)
  4088. Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)
  4089. Notes:    this function is supported by Advanced NetWare 2.1+
  4090.     caller must have created the job or be an operator
  4091. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  4092.  
  4093. Format of request buffer:
  4094. Offset    Size    Description
  4095.  00h    WORD    0007h (length of following data)
  4096.  02h    BYTE    6Ah (subfunction "Remove Job From Queue")
  4097.  03h    DWORD    (big-endian) object ID of queue
  4098.  07h    WORD    (big-endian) job number
  4099.  
  4100. Format of reply buffer:
  4101. Offset    Size    Description
  4102.  00h    WORD    (call) 0000h (no results returned)
  4103. --------N-21E3--SF6B-------------------------
  4104. INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB LIST
  4105.     AH = E3h subfn 6Bh
  4106.     DS:SI -> request buffer (see below)
  4107.     ES:DI -> reply buffer (see below)
  4108. Return: AL = status (00h,96h,9Ch,D0h-D3h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  4109. Notes:    this function is supported by Advanced NetWare 2.1+
  4110.     caller must be on a workstation which is security-equivalent to a
  4111.       member of the Q_USERS or Q_OPERATORS properties
  4112. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  4113.  
  4114. Format of request buffer:
  4115. Offset    Size    Description
  4116.  00h    WORD    0005h (length of following data)
  4117.  02h    BYTE    6Bh (subfunction "Get Queue Job List")
  4118.  03h    DWORD    (big-endian) object ID of queue
  4119.  
  4120. Format of reply buffer:
  4121. Offset    Size    Description
  4122.  00h    WORD    (call) size of following results buffer (max 1F6h)
  4123.  02h    WORD    (big-endian) job count
  4124.  04h  N WORDs    (big-endian) list of job numbers by position in queue
  4125.     WORD    maximum job numbers
  4126. --------N-21E3--SF6C-------------------------
  4127. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE JOB ENTRY
  4128.     AH = E3h subfn 6Ch
  4129.     DS:SI -> request buffer (see below)
  4130.     ES:DI -> reply buffer (see below)
  4131. Return: AL = status (00h,96h,D0h-D3h,D5h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  4132. Notes:    this function is supported by Advanced NetWare 2.1+
  4133.     caller must be on a workstation which is security-equivalent to a
  4134.       member of the Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  4135. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  4136.  
  4137. Format of request buffer:
  4138. Offset    Size    Description
  4139.  00h    WORD    0007h (length of following data)
  4140.  02h    BYTE    6Ch (subfunction "Read Queue Job Entry")
  4141.  03h    DWORD    (big-endian) object ID of queue
  4142.  07h    WORD    (big-endian) job number
  4143.  
  4144. Format of reply buffer:
  4145. Offset    Size    Description
  4146.  00h    WORD    (call) 0100h (size of following results)
  4147.  02h    BYTE    client station number
  4148.  03h    BYTE    client task number
  4149.  04h    DWORD    object ID of client
  4150.  08h    DWORD    (big-endian) object ID of target server
  4151.         FFFFFFFFh if any server acceptable
  4152.  0Ch  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  4153.         FFFFFFFFFFFFh if serviced as soon as possible
  4154.  12h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  4155.  18h    WORD    (big-endian) job number
  4156.  1Ah    WORD    (big-endian) job type
  4157.  1Ch    BYTE    job position
  4158.  1Dh    BYTE    job control flags (see below)
  4159.  1Eh 14 BYTEs    ASCIZ job filename
  4160.  2Ch  6 BYTEs    job file handle
  4161.  32h    BYTE    server station
  4162.  33h    BYTE    server task number
  4163.  34h    DWORD    object ID of server
  4164.  38h 50 BYTEs    ASCIZ job description string
  4165.  6Ah 152 BYTEs    client record area
  4166.  
  4167. Bitfields for job control flags:
  4168.  bit 3    job will be serviced automatically if connection broken
  4169.  bit 4    job remains in queue after server aborts job
  4170.  bit 5    client has not filled associated job file
  4171.  bit 6    User Hold--job advances, but cannot be serviced until this bit is
  4172.       cleared by user or operator
  4173.  bit 7    Operator Hold--job advances, but cannot be serviced until this bit is
  4174.       cleared by an operator
  4175. --------N-21E3--SF6D-------------------------
  4176. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB ENTRY
  4177.     AH = E3h subfn 6Dh
  4178.     DS:SI -> request buffer (see below)
  4179.     ES:DI -> reply buffer (see below)
  4180. Return: AL = status (00h,96h,D0h,D1h,D5h,D7h,FEh,FFh) (see AH=E3h/SF=64h)
  4181. Notes:    this function is supported by Advanced NetWare 2.1+
  4182.     caller must be an operator or the user who created the job
  4183. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Eh
  4184.  
  4185. Format of request buffer:
  4186. Offset    Size    Description
  4187.  00h    WORD    0105h (length of following data)
  4188.  02h    BYTE    6Dh (subfunction "Change Queue Job Entry")
  4189.  03h    DWORD    (big-endian) object ID of queue
  4190.  07h    BYTE    client station number
  4191.  08h    BYTE    client task number
  4192.  09h    DWORD    (big-endian) object ID of client
  4193.  0Dh    DWORD    (big-endian) object ID of target server
  4194.  11h  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  4195.  17h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  4196.  1Dh    WORD    (big-endian) job number
  4197.  1Fh    WORD    (big-endian) job type
  4198.  21h    BYTE    job position
  4199.  22h    BYTE    job control flags (see AH=E3h/SF=6Ch)
  4200.  23h 14 BYTEs    ASCIZ job filename
  4201.  31h  6 BYTEs    job file handle
  4202.  37h    BYTE    server station
  4203.  38h    BYTE    server task number
  4204.  39h    DWORD    object ID of server
  4205.  3Dh 50 BYTEs    ASCIZ job description string
  4206.  6Fh 152 BYTEs    client record area
  4207.  
  4208. Format of reply buffer:
  4209. Offset    Size    Description
  4210.  00h    WORD    (call) 0000h (no results returned)
  4211. --------N-21E3--SF6E-------------------------
  4212. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB POSITION
  4213.     AH = E3h subfn 6Eh
  4214.     DS:SI -> request buffer (see below)
  4215.     ES:DI -> reply buffer (see below)
  4216. Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)
  4217. Notes:    this function is supported by Advanced NetWare 2.1+
  4218.     caller must be an operator
  4219.     if the specified position is greater than the number of jobs in the
  4220.       queue, the job is placed at the end of the queue
  4221. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Dh
  4222.  
  4223. Format of request buffer:
  4224. Offset    Size    Description
  4225.  00h    WORD    0008h (length of following data)
  4226.  02h    BYTE    6Eh (subfunction "Change Queue Job Position")
  4227.  03h    DWORD    (big-endian) object ID of queue
  4228.  07h    WORD    (big-endian) job number
  4229.  09h    BYTE    new position in queue (01h-FAh)
  4230.  
  4231. Format of reply buffer:
  4232. Offset    Size    Description
  4233.  00h    WORD    (call) 0000h (no results returned)
  4234. --------N-21E3--SF6F-------------------------
  4235. INT 21 - Novell NetWare - QUEUE SERVICES - ATTACH QUEUE SERVER TO QUEUE
  4236.     AH = E3h subfn 6Fh
  4237.     DS:SI -> request buffer (see below)
  4238.     ES:DI -> reply buffer (see below)
  4239. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,DAh,DBh,FEh,FFh)
  4240.         (see also AH=E3h/SF=64h)
  4241.         FFh bindery failure, or no such property, or no such member
  4242. Desc:    attach the calling job server to the specified queue
  4243. Notes:    this function is supported by Advanced NetWare 2.1+
  4244.     a queue may have up to 25 job servers attached
  4245.     the calling workstation must be security-equivalent to a member of the
  4246.       queue's Q_SERVERS property
  4247. SeeAlso: AH=E3h/SF=70h,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  4248.  
  4249. Format of request buffer:
  4250. Offset    Size    Description
  4251.  00h    WORD    0005h (length of following data)
  4252.  02h    BYTE    6Fh (subfunction "Attach Queue Server To Queue")
  4253.  03h    DWORD    (big-endian) object ID of queue
  4254.  
  4255. Format of reply buffer:
  4256. Offset    Size    Description
  4257.  00h    WORD    (call) 0000h (no results returned)
  4258. --------N-21E3--SF70-------------------------
  4259. INT 21 - Novell NetWare - QUEUE SERVICES - DETACH QUEUE SERVER FROM QUEUE
  4260.     AH = E3h subfn 70h
  4261.     DS:SI -> request buffer (see below)
  4262.     ES:DI -> reply buffer (see below)
  4263. Return: AL = status (00h,96h,9Ch,D0h,D1h,D2h,FEh,FFh) (see AH=E3h/SF=64h)
  4264. Desc:    remove the calling job server from the specified queue's list of
  4265.       servers
  4266. Notes:    this function is supported by Advanced NetWare 2.1+
  4267.     the caller must have previously attached itself to the queue
  4268. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  4269.  
  4270. Format of request buffer:
  4271. Offset    Size    Description
  4272.  00h    WORD    0005h (length of following data)
  4273.  02h    BYTE    70h (subfunction "Detach Queue Server From Queue")
  4274.  03h    DWORD    (big-endian) object ID of queue
  4275.  
  4276. Format of reply buffer:
  4277. Offset    Size    Description
  4278.  00h    WORD    (call) 0000h (no results returned)
  4279. --------N-21E3--SF71-------------------------
  4280. INT 21 - Novell NetWare - QUEUE SERVICES - SERVICE QUEUE JOB AND OPEN FILE
  4281.     AH = E3h subfn 71h
  4282.     DS:SI -> request buffer (see below)
  4283.     ES:DI -> reply buffer (see AH=E3h/SF=68h)
  4284. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
  4285.         (see AH=E3h/SF=64h)
  4286. Notes:    this function is supported by Advanced NetWare 2.1+
  4287.     the caller must be on a workstation which is security-equivalent to a
  4288.       member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  4289. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  4290.  
  4291. Format of request buffer:
  4292. Offset    Size    Description
  4293.  00h    WORD    0007h (length of following data)
  4294.  02h    BYTE    71h (subfunction "Service Queue Job and Open File")
  4295.  03h    DWORD    (big-endian) object ID of queue
  4296.  07h    WORD    (big-endian) target job type
  4297.         FFFFh any
  4298. --------N-21E3--SF72-------------------------
  4299. INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AND FILE
  4300.     AH = E3h subfn 72h
  4301.     DS:SI -> request buffer (see below)
  4302.     ES:DI -> reply buffer (see below)
  4303. Return: AL = status (00h,96h,D0h,D1h,D6h) (see AH=E3h/SF=64h)
  4304. Desc:    inform the Queue Management System (QMS) that the queue server has
  4305.       completed a job
  4306. Notes:    this function is supported by Advanced NetWare 2.1+
  4307.     the caller must be a job server which has previously obtained a job
  4308.       for servicing
  4309. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=73h,AH=E3h/SF=76h
  4310.  
  4311. Format of request buffer:
  4312. Offset    Size    Description
  4313.  00h    WORD    000Bh (length of following data)
  4314.  02h    BYTE    72h (subfunction "Finish Servicing Queue Job and File")
  4315.  03h    DWORD    (big-endian) object ID of queue
  4316.  07h    WORD    (big-endian) job number
  4317.  09h    DWORD    (big-endian) charge
  4318.  
  4319. Format of reply buffer:
  4320. Offset    Size    Description
  4321.  00h    WORD    (call) 0000h (no results returned)
  4322. --------N-21E3--SF73-------------------------
  4323. INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AND FILE
  4324.     AH = E3h subfn 73h
  4325.     DS:SI -> request buffer (see below)
  4326.     ES:DI -> reply buffer (see below)
  4327. Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see AH=E3h/SF=64h)
  4328. Desc:    inform the Queue Management System (QMS) that the queue server is
  4329.       unable to service a previously-accepted job
  4330. Note:    this function is supported by Advanced NetWare 2.1+
  4331. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=76h
  4332.  
  4333. Format of request buffer:
  4334. Offset    Size    Description
  4335.  00h    WORD    0007h (length of following data)
  4336.  02h    BYTE    73h (subfunction "Abort Servicing Queue Job and File")
  4337.  03h    DWORD    (big-endian) object ID of queue
  4338.  07h    WORD    (big-endian) job number
  4339.  
  4340. Format of reply buffer:
  4341. Offset    Size    Description
  4342.  00h    WORD    (call) 0000h (no results returned)
  4343. --------N-21E3--SF74-------------------------
  4344. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE TO CLIENT RIGHTS
  4345.     AH = E3h subfn 74h
  4346.     DS:SI -> request buffer (see below)
  4347.     ES:DI -> reply buffer (see below)
  4348. Return: AL = status (00h,96h,D0h,D1h,D5h,D9h) (see AH=E3h/SF=64h)
  4349. Desc:    temporarily assume the login identity of the client submitting the
  4350.       job being serviced
  4351. Notes:    this function is supported by Advanced NetWare 2.1+
  4352.     caller must be a job server which has obtained a job for servicing
  4353. SeeAlso: AH=E3h/SF=75h
  4354.  
  4355. Format of request buffer:
  4356. Offset    Size    Description
  4357.  00h    WORD    0007h (length of following data)
  4358.  02h    BYTE    74h (subfunction "Change To Client Rights")
  4359.  03h    DWORD    (big-endian) object ID of queue
  4360.  07h    WORD    (big-endian) job number
  4361.  
  4362. Format of reply buffer:
  4363. Offset    Size    Description
  4364.  00h    WORD    (call) 0000h (no results returned)
  4365. --------N-21E3--SF75-------------------------
  4366. INT 21 - Novell NetWare - QUEUE SERVICES - RESTORE QUEUE SERVER RIGHTS
  4367.     AH = E3h subfn 75h
  4368.     DS:SI -> request buffer (see below)
  4369.     ES:DI -> reply buffer (see below)
  4370. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
  4371.         (see AH=E3h/SF=64h)
  4372. Desc:    restore server's own identity after assuming the login identity of the
  4373.       client submitting the job being serviced
  4374. Notes:    this function is supported by Advanced NetWare 2.1+
  4375.     caller must be a job server which has previously changed its identity
  4376. SeeAlso: AH=E3h/SF=74h
  4377.  
  4378. Format of request buffer:
  4379. Offset    Size    Description
  4380.  00h    WORD    0001h (length of following data)
  4381.  02h    BYTE    75h (subfunction "Change To Client Rights")
  4382.  
  4383. Format of reply buffer:
  4384. Offset    Size    Description
  4385.  00h    WORD    (call) 0000h (no results returned)
  4386. --------N-21E3--SF76-------------------------
  4387. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS
  4388.     AH = E3h subfn 76h
  4389.     DS:SI -> request buffer (see below)
  4390.     ES:DI -> reply buffer (see below)
  4391. Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  4392. Notes:    this function is supported by Advanced NetWare 2.1+
  4393.     caller must be on a workstation which is security-equivalent to a
  4394.       member of the Q_USERS or Q_OPERATORS properties
  4395. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=77h,AH=E3h/SF=78h
  4396.  
  4397. Format of request buffer:
  4398. Offset    Size    Description
  4399.  00h    WORD    000Ah (length of following data)
  4400.  02h    BYTE    76h (subfunction "Read Queue Server Current Status")
  4401.  03h    DWORD    (big-endian) object ID of queue
  4402.  07h    DWORD    (big-endian) object ID of server
  4403.  0Bh    BYTE    server station
  4404.  
  4405. Format of reply buffer:
  4406. Offset    Size    Description
  4407.  00h    WORD    (call) 0040h (size of following results)
  4408.  02h 64 BYTEs    server status record (format depends on server)
  4409.         first four bytes should contain estimated "price" for an
  4410.         average job
  4411. --------N-21E3--SF77-------------------------
  4412. INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE SERVER CURRENT STATUS
  4413.     AH = E3h subfn 77h
  4414.     DS:SI -> request buffer (see below)
  4415.     ES:DI -> reply buffer (see below)
  4416. Return: AL = status (00h,96h,9Ch,D0h,D1h,FEh,FFh) (see AH=E3h/SF=64h)
  4417. Notes:    this function is supported by Advanced NetWare 2.1+
  4418.     caller must be a job server which has attached itself to the queue
  4419. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=76h,AH=E3h/SF=78h
  4420.  
  4421. Format of request buffer:
  4422. Offset    Size    Description
  4423.  00h    WORD    0045h (length of following data)
  4424.  02h    BYTE    77h (subfunction "Set Queue Server Current Status")
  4425.  03h    DWORD    (big-endian) object ID of queue
  4426.  02h 64 BYTEs    server status record (format depends on server)
  4427.         first four bytes should contain estimated "price" for an
  4428.         average job
  4429.  
  4430. Format of reply buffer:
  4431. Offset    Size    Description
  4432.  00h    WORD    (call) 0000h (no results returned)
  4433. --------N-21E3--SF78-------------------------
  4434. INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB'S FILE SIZE
  4435.     AH = E3h subfn 78h
  4436.     DS:SI -> request buffer (see below)
  4437.     ES:DI -> reply buffer (see below)
  4438. Return: AL = status (see also AH=E3h/SF=64h)
  4439.         00h successful
  4440. Notes:    this function is supported by Advanced NetWare 2.1+
  4441.     caller must be on a workstation which is security-equivalent to a
  4442.       member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  4443. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=71h
  4444.  
  4445. Format of request buffer:
  4446. Offset    Size    Description
  4447.  00h    WORD    0007h (length of following data)
  4448.  02h    BYTE    78h (subfunction "Get Queue Job's File Size")
  4449.  03h    DWORD    (big-endian) object ID of queue
  4450.  07h    WORD    (big-endian) job number
  4451.  
  4452. Format of reply buffer:
  4453. Offset    Size    Description
  4454.  00h    WORD    (call) 000Ah (size of following results)
  4455.  02h    DWORD    (big-endian) object ID of queue
  4456.  06h    WORD    (big-endian) job number
  4457.  08h    DWORD    (big-endian) size of job file in bytes
  4458. --------N-21E3--SF96-------------------------
  4459. INT 21 - Novell NetWare - ACCOUNTING SERVICES - GET ACCOUNT STATUS
  4460.     AH = E3h subfn 96h
  4461.     DS:SI -> request buffer (see below)
  4462.     ES:DI -> reply buffer (see below)
  4463. Return: AL = status (00h,C0h,C1h) (see below)
  4464. Note:    this function is supported by Advanced NetWare 2.1+
  4465. SeeAlso: AH=E3h/SF=97h,AH=E3h/SF=98h,AH=E3h/SF=99h
  4466.  
  4467. Values for status:
  4468.  00h    successful
  4469.  C0h    no account privileges
  4470.  C1h    no account balance
  4471.  C2h    credit limit exceeded
  4472.  C3h    too many holds on account
  4473.  
  4474. Format of request buffer:
  4475. Offset    Size    Description
  4476.  00h    WORD    length of following data (max 33h)
  4477.  02h    BYTE    96h (subfunction "Get Account Status")
  4478.  03h    WORD    (big-endian) type of bindery object
  4479.  05h    BYTE    length of object name (01h to 2Fh)
  4480.  06h  N BYTEs    object name
  4481.  
  4482. Format of reply buffer:
  4483. Offset    Size    Description
  4484.  00h    WORD    (call) length of following buffer space
  4485.  02h    DWORD    (big-endian) account balance
  4486.  06h    DWORD    (big-endian) credit limit
  4487.         signed number indicating lowest allowable account balance
  4488.  0Ah 120 BYTEs    reserved
  4489.  82h    DWORD    (big-endian) object ID, server 1
  4490.  86h    DWORD    (big-endian) hold amount, server 1
  4491.     ...
  4492.  F8h    DWORD    (big-endian) object ID, server 16
  4493.  FCh    DWORD    (big-endian) hold amount, server 16
  4494. Note:    the reply buffer lists the servers which have placed holds on a portion
  4495.       of the account balance, and the amount reserved by each
  4496. --------N-21E3--SF97-------------------------
  4497. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT CHARGE
  4498.     AH = E3h subfn 97h
  4499.     DS:SI -> request buffer (see below)
  4500.     ES:DI -> reply buffer (see below)
  4501. Return: AL = status (00h,C0h-C2h) (see AH=E3h/SF=96h)
  4502. Note:    this function is supported by Advanced NetWare 2.1+
  4503. SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=98h
  4504.  
  4505. Format of request buffer:
  4506. Offset    Size    Description
  4507.  00h    WORD    length of following data (max 13Fh)
  4508.  02h    BYTE    97h (subfunction "Submit Account Charge")
  4509.  03h    WORD    (big-endian) service type
  4510.  05h    DWORD    (big-endian) amount to be charged to account
  4511.  09h    DWORD    (big-endian) amount of prior hold to be cancelled
  4512.  0Dh    WORD    (big-endian) type of bindery object
  4513.  0Fh    WORD    (big-endian) type of comment
  4514.         8000h-FFFFh reserved for experimental use
  4515.  11h    BYTE    length of object's name
  4516.  12h  N BYTEs    object name
  4517.     BYTE    length of comment
  4518.       N BYTEs    comment
  4519.  
  4520. Format of reply buffer:
  4521. Offset    Size    Description
  4522.  00h    WORD    0000h (no data returned)
  4523. --------N-21E3--SF98-------------------------
  4524. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT HOLD
  4525.     AH = E3h subfn 98h
  4526.     DS:SI -> request buffer (see below)
  4527.     ES:DI -> reply buffer (see below)
  4528. Return: AL = status (00h,C0h-C3h) (see AH=E3h/SF=96h)
  4529. Note:    this function is supported by Advanced NetWare 2.1+
  4530. SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=97h
  4531.  
  4532. Format of request buffer:
  4533. Offset    Size    Description
  4534.  00h    WORD    length of following data (max 37h)
  4535.  02h    BYTE    98h (subfunction "Submit Account Hold")
  4536.  03h    DWORD    (big-endian) amount of account balance to reserve
  4537.  07h    WORD    (big-endian) type of bindery object
  4538.  09h    BYTE    length of object's name
  4539.  0Ah  N BYTEs    object name
  4540.  
  4541. Format of reply buffer:
  4542. Offset    Size    Description
  4543.  00h    WORD    0000h (no data returned)
  4544. --------N-21E3--SF99-------------------------
  4545. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT NOTE
  4546.     AH = E3h subfn 99h
  4547.     DS:SI -> request buffer (see below)
  4548.     ES:DI -> reply buffer (see below)
  4549. Return: AL = status
  4550.         00h successful
  4551.         C0h no account privileges
  4552. Note:    this function is supported by Advanced NetWare 2.1+
  4553. SeeAlso: AH=E3h/SF=96h
  4554.  
  4555. Format of request buffer:
  4556. Offset    Size    Description
  4557.  00h    WORD    length of following data (max 137h)
  4558.  02h    BYTE    99h (subfunction "Submit Account Note")
  4559.  03h    WORD    (big-endian) type of service
  4560.  05h    WORD    (big-endian) type of bindery object
  4561.  07h    WORD    (big-endian) type of comment
  4562.         8000h-FFFFh reserved for experimental use
  4563.  09h    BYTE    length of object's name
  4564.  0Ah  N BYTEs    object name
  4565.     BYTE    length of comment
  4566.       N BYTEs    comment
  4567.  
  4568. Format of reply buffer:
  4569. Offset    Size    Description
  4570.  00h    WORD    0000h (no data returned)
  4571. --------N-21E3--SFC8-------------------------
  4572. INT 21 - Novell NetWare - FILE SERVER - CHECK CONSOLE PRIVILEGES
  4573.     AH = E3h subfn C8h
  4574.     DS:SI -> request buffer (see below)
  4575.     ES:DI -> reply buffer (see below)
  4576. Return: AL = status
  4577.         00h successful
  4578.         C6h no console rights
  4579. Desc:    determine whether the caller is a console operator
  4580. Notes:    this function is supported by Advanced NetWare 2.1+
  4581.     NetWare determines console privileges by checking the file server's
  4582.       OPERATOR property for the caller's object ID
  4583. SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h
  4584.  
  4585. Format of request buffer:
  4586. Offset    Size    Description
  4587.  00h    WORD    0001h (length of following data)
  4588.  02h    BYTE    C8h (subfunction "Check Console Privileges")
  4589.  
  4590. Format of reply buffer:
  4591. Offset    Size    Description
  4592.  00h    WORD    (call) 0000h (no results returned)
  4593. --------N-21E3--SFC9-------------------------
  4594. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DESCRIPTION STRINGS
  4595.     AH = E3h subfn C9h
  4596.     DS:SI -> request buffer (see below)
  4597.     ES:DI -> reply buffer (see below)
  4598. Return: AL = status
  4599.         00h successful
  4600. Notes:    this function is supported by Advanced NetWare 2.1+
  4601.     the calling workstation must be attached to the file server
  4602. SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E8h
  4603.  
  4604. Format of request buffer:
  4605. Offset    Size    Description
  4606.  00h    WORD    0001h (length of following data)
  4607.  02h    BYTE    C9h (subfunction "Get File Server Description Strings")
  4608.  
  4609. Format of reply buffer:
  4610. Offset    Size    Description
  4611.  00h    WORD    (call) 0200h (size of following results buffer)
  4612.  02h    var    ASCIZ name of company distributing this copy of NetWare
  4613.     var    ASCIZ version and revision
  4614.       9 BYTEs    ASCIZ revision date (mm/dd/yy)
  4615.     var    ASCIZ copyright notice
  4616. --------N-21E3--SFCA-------------------------
  4617. INT 21 - Novell NetWare - FILE SERVER - SET FILE SERVER DATE AND TIME
  4618.     AH = E3h subfn CAh
  4619.     DS:SI -> request buffer (see below)
  4620.     ES:DI -> reply buffer (see below)
  4621. Return: AL = status
  4622.         00h successful
  4623.         C6h no console rights
  4624. Notes:    this function is supported by Advanced NetWare 2.1+
  4625.     the calling workstation must have console operator privileges
  4626. SeeAlso: AH=2Bh,AH=2Dh,AH=E3h/SF=C8h,AH=E7h
  4627.  
  4628. Format of request buffer:
  4629. Offset    Size    Description
  4630.  00h    WORD    0007h (length of following data)
  4631.  02h    BYTE    CAh (subfunction "Set File Server Date And Time")
  4632.  03h    BYTE    year (00-79 = 2000-2079, 80-99 = 1980-1999)
  4633.  04h    BYTE    month (1-12)
  4634.  05h    BYTE    day (1-31)
  4635.  06h    BYTE    hour (0-23)
  4636.  07h    BYTE    minute
  4637.  08h    BYTR    second
  4638.  
  4639. Format of reply buffer:
  4640. Offset    Size    Description
  4641.  00h    WORD    (call) 0000h (no results returned)
  4642. --------N-21E3--SFCB-------------------------
  4643. INT 21 - Novell NetWare - FILE SERVER - DISABLE FILE SERVER LOGIN
  4644.     AH = E3h subfn CBh
  4645.     DS:SI -> request buffer (see below)
  4646.     ES:DI -> reply buffer (see below)
  4647. Return: AL = status
  4648.         00h successful
  4649.         C6h no console rights
  4650. Notes:    this function is supported by Advanced NetWare 2.1+
  4651.     the calling workstation must have console operator privileges
  4652. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CCh,AH=E3h/SF=D3h
  4653.  
  4654. Format of request buffer:
  4655. Offset    Size    Description
  4656.  00h    WORD    0001h (length of following data)
  4657.  02h    BYTE    CBh (subfunction "Disable File Server Login")
  4658.  
  4659. Format of reply buffer:
  4660. Offset    Size    Description
  4661.  00h    WORD    (call) 0000h (no results returned)
  4662. --------N-21E3--SFCC-------------------------
  4663. INT 21 - Novell NetWare - FILE SERVER - ENABLE FILE SERVER LOGIN
  4664.     AH = E3h subfn CCh
  4665.     DS:SI -> request buffer (see below)
  4666.     ES:DI -> reply buffer (see below)
  4667. Return: AL = status
  4668.         00h successful
  4669.         C6h no console rights
  4670. Notes:    this function is supported by Advanced NetWare 2.1+
  4671.     the calling workstation must have console operator privileges
  4672. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh
  4673.  
  4674. Format of request buffer:
  4675. Offset    Size    Description
  4676.  00h    WORD    0001h (length of following data)
  4677.  02h    BYTE    CCh (subfunction "Enable File Server Login")
  4678.  
  4679. Format of reply buffer:
  4680. Offset    Size    Description
  4681.  00h    WORD    (call) 0000h (no results returned)
  4682. --------N-21E3--SFCD-------------------------
  4683. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LOGIN STATUS
  4684.     AH = E3h subfn CDh
  4685.     DS:SI -> request buffer (see below)
  4686.     ES:DI -> reply buffer (see below)
  4687. Return: AL = status
  4688.         00h successful
  4689.         C6h no console rights
  4690. Notes:    this function is supported by Advanced NetWare 2.1+
  4691.     the calling workstation must have console operator privileges
  4692. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CCh
  4693.  
  4694. Format of request buffer:
  4695. Offset    Size    Description
  4696.  00h    WORD    0001h (length of following data)
  4697.  02h    BYTE    CDh (subfunction "Get File Server Login Status")
  4698.  
  4699. Format of reply buffer:
  4700. Offset    Size    Description
  4701.  00h    WORD    (call) 0001h (size of following results buffer)
  4702.  02h    BYTE    login state (00h disabled, 01h enabled)
  4703. --------N-21E3--SFCE-------------------------
  4704. INT 21 - Novell NetWare - FILE SERVICES - PURGE ALL ERASED FILES
  4705.     AH = E3h subfn CEh
  4706.     DS:SI -> request buffer (see below)
  4707.     ES:DI -> reply buffer (see below)
  4708. Return: AL = status
  4709.         00h successful
  4710.         C6h no console rights
  4711. Desc:    all files marked for deletion on the file server are purged, regardless
  4712.       of which workstation actually erased them
  4713. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4714.       Alloy NTNX
  4715.     the calling workstation must have console operator privileges
  4716. SeeAlso: AH=13h,AH=E2h/SF=10h,AH=E3h/SF=C8h,AX=F244h
  4717.  
  4718. Format of request buffer:
  4719. Offset    Size    Description
  4720.  00h    WORD    0001h (length of following data)
  4721.  02h    BYTE    CEh (subfunction "Purge All Erased Files")
  4722.  
  4723. Format of reply buffer:
  4724. Offset    Size    Description
  4725.  00h    WORD    (call) 0000h (no results returned)
  4726. --------N-21E3--SFCF-------------------------
  4727. INT 21 - Novell NetWare - FILE SERVER - DISABLE TRANSACTION TRACKING
  4728.     AH = E3h subfn CFh
  4729.     DS:SI -> request buffer (see below)
  4730.     ES:DI -> reply buffer (see below)
  4731. Return: AL = status
  4732.         00h successful
  4733.         C6h no console rights
  4734. Notes:    this function is supported by Advanced NetWare 2.1+
  4735.     the calling workstation must have console operator privileges
  4736. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D0h
  4737.  
  4738. Format of request buffer:
  4739. Offset    Size    Description
  4740.  00h    WORD    0001h (length of following data)
  4741.  02h    BYTE    CFh (subfunction "Disable Transaction Tracking")
  4742.  
  4743. Format of reply buffer:
  4744. Offset    Size    Description
  4745.  00h    WORD    (call) 0000h (no results returned)
  4746. --------N-21E3--SFD0-------------------------
  4747. INT 21 - Novell NetWare - FILE SERVER - ENABLE TRANSACTION TRACKING
  4748.     AH = E3h subfn D0h
  4749.     DS:SI -> request buffer (see below)
  4750.     ES:DI -> reply buffer (see below)
  4751. Return: AL = status
  4752.         00h successful
  4753.         C6h no console rights
  4754. Desc:    restart transaction tracking after being stopped either explicitly by
  4755.       AH=E3h/SF=CFh or automatically due to a full transaction volume
  4756. Notes:    this function is supported by Advanced NetWare 2.1+
  4757.     the calling workstation must have console operator privileges
  4758. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh
  4759.  
  4760. Format of request buffer:
  4761. Offset    Size    Description
  4762.  00h    WORD    0001h (length of following data)
  4763.  02h    BYTE    D0h (subfunction "Enable Transaction Tracking")
  4764.  
  4765. Format of reply buffer:
  4766. Offset    Size    Description
  4767.  00h    WORD    (call) 0000h (no results returned)
  4768. --------N-21E3--SFD1-------------------------
  4769. INT 21 - Novell NetWare - FILE SERVER - SEND CONSOLE BROADCAST
  4770.     AH = E3h subfn D1h
  4771.     DS:SI -> request buffer (see below)
  4772.     ES:DI -> reply buffer (see below)
  4773. Return: AL = status
  4774.         00h successful
  4775.         C6h no console rights
  4776. Notes:    this function is supported by Advanced NetWare 2.1+
  4777.     the calling workstation must have console operator privileges
  4778.     the broadcast message will not be received by workstations which have
  4779.       disabled broadcasts with AH=E1h/SF=02h
  4780. SeeAlso: AH=E1h/SF=02h,AH=E1h/SF=09h,AH=E3h/SF=C8h,AH=E3h/SF=D3h
  4781.  
  4782. Format of request buffer:
  4783. Offset    Size    Description
  4784.  00h    WORD    length of following data (max A2h)
  4785.  02h    BYTE    D1h (subfunction "Send Console Broadcast")
  4786.  03h    BYTE    number of connections to receive message
  4787.         00h = all, else specific list below
  4788.  04h  N BYTEs    connection list
  4789.     BYTE    length of message (max 3Ch)
  4790.       N BYTEs    message
  4791.  
  4792. Format of reply buffer:
  4793. Offset    Size    Description
  4794.  00h    WORD    (call) 0000h (no results returned)
  4795. --------N-21E3--SFD2-------------------------
  4796. INT 21 - Novell NetWare - FILE SERVER - CLEAR CONNECTION NUMBER
  4797.     AH = E3h subfn D2h
  4798.     DS:SI -> request buffer (see below)
  4799.     ES:DI -> reply buffer (see below)
  4800. Return: AL = status
  4801.         00h successful
  4802.         C6h no console rights
  4803. Desc:    close the open files and release all file locks for a connection,
  4804.       abort transactions if a TTS file server, and detach from the file
  4805.       server
  4806. Notes:    this function is supported by Advanced NetWare 2.1+
  4807.     the caller must have SUPERVISOR privileges
  4808. SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h
  4809.  
  4810. Format of request buffer:
  4811. Offset    Size    Description
  4812.  00h    WORD    0002h (length of following data)
  4813.  02h    BYTE    D2h (subfunction "Clear Connection Number")
  4814.  03h    BYTE    connection number
  4815.  
  4816. Format of reply buffer:
  4817. Offset    Size    Description
  4818.  00h    WORD    (call) 0000h (no results returned)
  4819. --------N-21E3--SFD3-------------------------
  4820. INT 21 - Novell NetWare - FILE SERVER - DOWN FILE SERVER
  4821.     AH = E3h subfn D3h
  4822.     DS:SI -> request buffer (see below)
  4823.     ES:DI -> reply buffer (see below)
  4824. Return: AL = status
  4825.         00h successful
  4826.         C6h no console rights
  4827.         FFh files open
  4828. Desc:    take down the file server
  4829. Notes:    this function is supported by Advanced NetWare 2.1+
  4830.     the calling workstation must have SUPERVISOR privileges
  4831. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CFh,AH=E3h/SF=D1h
  4832.  
  4833. Format of request buffer:
  4834. Offset    Size    Description
  4835.  00h    WORD    0002h (length of following data)
  4836.  02h    BYTE    D3h (subfunction "Down File Server")
  4837.  03h    BYTE    flag: force down even if files open if nonzero
  4838.  
  4839. Format of reply buffer:
  4840. Offset    Size    Description
  4841.  00h    WORD    (call) 0000h (no results returned)
  4842. --------N-21E3--SFD4-------------------------
  4843. INT 21 - Novell NetWare - FILE SERVER - GET FILE SYSTEM STATISTICS
  4844.     AH = E3h subfn D4h
  4845.     DS:SI -> request buffer (see below)
  4846.     ES:DI -> reply buffer (see below)
  4847. Return: AL = status
  4848.         00h successful
  4849.         C6h no console rights
  4850. Notes:    this function is supported by Advanced NetWare 2.1+
  4851.     the calling workstation must have console operator privileges
  4852. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E7h,AH=E3h/SF=E8h
  4853.  
  4854. Format of request buffer:
  4855. Offset    Size    Description
  4856.  00h    WORD    0001h (length of following data)
  4857.  02h    BYTE    D4h (subfunction "Get File System Statistics")
  4858.  
  4859. Format of reply buffer:
  4860. Offset    Size    Description
  4861.  00h    WORD    (call) 0028h (size of following results buffer)
  4862.  02h    DWORD    clock ticks since system started
  4863.  06h    WORD    maximum open files set by configuration
  4864.  08h    WORD    maximum files open concurrently
  4865.  0Ah    WORD    current number of open files
  4866.  0Ch    DWORD    total files opened
  4867.  10h    DWORD    total file read requests
  4868.  14h    DWORD    total file write requests
  4869.  18h    WORD    current changed FATs
  4870.  1Ah    WORD    total changed FATs
  4871.  1Ch    WORD    number of FAT write errors
  4872.  1Eh    WORD    number of fatal FAT write errors
  4873.  20h    WORD    number of FAT scan errors
  4874.  22h    WORD    maximum concurrently-indexed files
  4875.  24h    WORD    current number of indexed files
  4876.  26h    WORD    number of attached indexed files
  4877.  28h    WORD    number of indexed files available
  4878. Note:    all fields except the first are big-endian
  4879. --------N-21E3--SFD5-------------------------
  4880. INT 21 - Novell NetWare - FILE SERVER - GET TRANSACTION TRACKING STATISTICS
  4881.     AH = E3h subfn D5h
  4882.     DS:SI -> request buffer (see below)
  4883.     ES:DI -> reply buffer (see below)
  4884. Return: AL = status
  4885.         00h successful
  4886.         C6h no console rights
  4887. Notes:    this function is supported by Advanced NetWare 2.1+
  4888.     the calling workstation must have console operator privileges
  4889. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh,AH=E3h/SF=D0h,AH=E3h/SF=E8h
  4890.  
  4891. Format of request buffer:
  4892. Offset    Size    Description
  4893.  00h    WORD    0001h (length of following data)
  4894.  02h    BYTE    D5h (subfunction "TTS Get Statistics")
  4895.  
  4896. Format of reply buffer:
  4897. Offset    Size    Description
  4898.  00h    WORD    (call) length of following results buffer (max 1BCh)
  4899.  02h    DWORD    (big-endian) clock ticks since system started
  4900.  06h    BYTE    transaction tracking supported if nonzero
  4901.         (all following fields are invalid if zero)
  4902.  07h    BYTE    transaction tracking enabled
  4903.  08h    WORD    (big-endian) transaction volume number
  4904.  0Ah    WORD    (big-endian) maximum simultaneous transactions configured
  4905.  0Ch    WORD    (big-endian) maximum simultaneous transactions since startup
  4906.  0Eh    WORD    (big-endian) current transactions in progress
  4907.  10h    DWORD    (big-endian) total transactions performed
  4908.  14h    DWORD    (big-endian) total write transactions
  4909.  18h    DWORD    (big-endian) total transactions backed out
  4910.  1Ch    WORD    (big-endian) number of unfilled backout requests
  4911.  1Eh    WORD    (big-endian) disk blocks used for transaction tracking
  4912.  20h    DWORD    (big-endian) blocks allocated for tracked-file FATs
  4913.  24h    DWORD    (big-endian) number of file size changes during a transaction
  4914.  28h    DWORD    (big-endian) number of file truncations during a transaction
  4915.  2Ch    BYTE    number of records following
  4916.  2Dh    Active Transaction Records [array]
  4917.     Offset    Size    Description
  4918.      00h    BYTE    logical connection number
  4919.      01h    BYTE    task number
  4920. --------N-21E3--SFD6-------------------------
  4921. INT 21 - Novell NetWare - FILE SERVER - GET DISK CACHE STATISTICS
  4922.     AH = E3h subfn D6h
  4923.     DS:SI -> request buffer (see below)
  4924.     ES:DI -> reply buffer (see below)
  4925. Return: AL = status
  4926.         00h successful
  4927.         C6h no console rights
  4928. Notes:    this function is supported by Advanced NetWare 2.1+
  4929.     the calling workstation must have console operator privileges
  4930. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D5h,AH=E3h/SF=D8h,AH=E3h/SF=D9h,AH=E3h/SF=E6h
  4931.  
  4932. Format of request buffer:
  4933. Offset    Size    Description
  4934.  00h    WORD    0001h (length of following data)
  4935.  02h    BYTE    D6h (subfunction "Get Disk Cache Statistics")
  4936.  
  4937. Format of reply buffer:
  4938. Offset    Size    Description
  4939.  00h    WORD    (call) 004Eh (length of following results buffer)
  4940.  02h    DWORD    clock ticks since system started
  4941.  06h    WORD    number of cache buffers
  4942.  08h    WORD    size of cache buffer in bytes
  4943.  0Ah    WORD    number of dirty cache buffers
  4944.  0Ch    DWORD    number of cache read requests
  4945.  10h    DWORD    number of cache write requests
  4946.  14h    DWORD    number of cache hits
  4947.  18h    DWORD    number of cache misses
  4948.  1Ch    DWORD    number of physical read requests
  4949.  20h    DWORD    number of physical write requests
  4950.  24h    WORD    number of physical read errors
  4951.  26h    WORD    number of physical write errors
  4952.  28h    DWORD    cache get requests
  4953.  2Ch    DWORD    cache full write requests
  4954.  30h    DWORD    cache partial write requests
  4955.  34h    DWORD    background dirty writes
  4956.  38h    DWORD    background aged writes
  4957.  3Ch    DWORD    total cache writes
  4958.  40h    DWORD    number of cache allocations
  4959.  44h    WORD    thrashing count
  4960.  46h    WORD    number of times LRU block was dirty
  4961.  48h    WORD    number of reads on cache blocks not yet filled by writes
  4962.  4Ah    WORD    number of times a fragmented write occurred
  4963.  4Ch    WORD    number of cache hits on unavailable block
  4964.  4Eh    WORD    number of times a cache block was scrapped
  4965. Note:    all fields except the first are big-endian
  4966. --------N-21E3--SFD7-------------------------
  4967. INT 21 - Novell NetWare - FILE SERVER - GET DRIVE MAPPING TABLE
  4968.     AH = E3h subfn D7h
  4969.     DS:SI -> request buffer (see below)
  4970.     ES:DI -> reply buffer (see below)
  4971. Return: AL = status
  4972.         00h successful
  4973.         C6h no console rights
  4974. Notes:    this function is supported by Advanced NetWare 2.1+
  4975.     the calling workstation must have console operator privileges
  4976. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  4977.  
  4978. Format of request buffer:
  4979. Offset    Size    Description
  4980.  00h    WORD    0001h (length of following data)
  4981.  02h    BYTE    D7h (subfunction "Get Drive Mapping Table")
  4982.  
  4983. Format of reply buffer:
  4984. Offset    Size    Description
  4985.  00h    WORD    (call) 00ECh (length of following results buffer)
  4986.  02h    DWORD    (big-endian) clock tick elapsed since system started
  4987.  06h    BYTE    fault tolerance (SFT) level
  4988.  07h    BYTE    number of logical drives attached to server
  4989.  08h    BYTE    number of physical drives attached to server
  4990.  09h  5 BYTEs    disk channel types (00h none, 01h XT, 02h AT, 03h SCSI,
  4991.         04h disk coprocessor drive, 32h-FFh value-added drive types)
  4992.  0Eh    WORD    (big-endian) number of outstanding controller commands
  4993.  10h 32 BYTEs    drive mapping table (FFh = no such drive)
  4994.  30h 32 BYTEs    drive mirror table (secondary physical drive, FFh = none)
  4995.  50h 32 BYTEs    dead mirror table (last drive mapped to, FFh if never mirrored)
  4996.  70h    BYTE    physical drive being remirrored (FFh = none)
  4997.  71h    BYTE    reserved
  4998.  72h    DWORD    (big-endian) remirrored block
  4999.  76h 60 BYTEs    SFT error table (internal error counters)
  5000. --------N-21E3--SFD8-------------------------
  5001. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL DISK STATISTICS
  5002.     AH = E3h subfn D8h
  5003.     DS:SI -> request buffer (see below)
  5004.     ES:DI -> reply buffer (see below)
  5005. Return: AL = status
  5006.         00h successful
  5007.         C6h no console rights
  5008. Notes:    this function is supported by Advanced NetWare 2.1+
  5009.     the calling workstation must have console operator privileges
  5010. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E9h
  5011.  
  5012. Format of request buffer:
  5013. Offset    Size    Description
  5014.  00h    WORD    0002h (length of following data)
  5015.  02h    BYTE    D8h (subfunction "Get Physical Disk Statistics")
  5016.  03h    BYTE    physical disk number
  5017.  
  5018. Format of reply buffer:
  5019. Offset    Size    Description
  5020.  00h    WORD    (call) 005Dh (size of following results record)
  5021.  02h    DWORD    (big-endian) clock ticks since system started
  5022.  06h    BYTE    physical disk channel
  5023.  07h    BYTE    flag: drive removable if nonzero
  5024.  08h    BYTE    physical drive type
  5025.  09h    BYTE    drive number within controller
  5026.  0Ah    BYTE    controller number
  5027.  0Bh    BYTE    controller type
  5028.  0Ch    DWORD    (big-endian) size of drive in 4K disk blocks
  5029.  10h    WORD    (big-endian) number of cylinders on drive
  5030.  12h    BYTE    number of heads
  5031.  13h    BYTE    number of sectors per track
  5032.  14h 64 BYTEs    ASCIZ drive make and model
  5033.  54h    WORD    (big-endian) number of I/O errors
  5034.  56h    DWORD    (big-endian) start of Hot Fix table
  5035.  5Ah    WORD    (big-endian) size of Hot Fix table
  5036.  5Ch    WORD    (big-endian) number of Hot Fix blocks available
  5037.  5Eh    BYTE    flag: Hot Fix disabled if nonzero
  5038. --------N-21E3--SFD9-------------------------
  5039. INT 21 - Novell NetWare - FILE SERVER - GET DISK CHANNEL STATISTICS
  5040.     AH = E3h subfn D9h
  5041.     DS:SI -> request buffer (see below)
  5042.     ES:DI -> reply buffer (see below)
  5043. Return: AL = status
  5044.         00h successful
  5045.         C6h no console rights
  5046. Notes:    this function is supported by Advanced NetWare 2.1+
  5047.     the calling workstation must have console operator privileges
  5048. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D8h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  5049.  
  5050. Format of request buffer:
  5051. Offset    Size    Description
  5052.  00h    WORD    0002h (length of following data)
  5053.  02h    BYTE    D9h (subfunction "Get Disk Channel Statistics")
  5054.  03h    BYTE    channel number
  5055.  
  5056. Format of reply buffer:
  5057. Offset    Size    Description
  5058.  00h    WORD    (call) 00A8h (size of following results record)
  5059.  02h    DWORD    (big-endian) clock ticks since system started
  5060.  06h    WORD    (big-endian) channel run state (see below)
  5061.  08h    WORD    (big-endian) channel synchronization state (see below)
  5062.  0Ah    BYTE    driver type
  5063.  0Bh    BYTE    major version of driver
  5064.  0Ch    BYTE    minor version of driver
  5065.  0Dh 65 BYTEs    ASCIZ driver description
  5066.  4Eh    WORD    (big-endian) first I/O address used
  5067.  50h    WORD    (big-endian) length of first I/O address
  5068.  52h    WORD    (big-endian) second I/O address used
  5069.  54h    WORD    (big-endian) length of second I/O address
  5070.  56h  3 BYTEs    first shared memory address
  5071.  59h  2 BYTEs    length of first shared memory address
  5072.  5Bh  3 BYTEs    second shared memory address
  5073.  5Eh  2 BYTEs    length of second shared memory address
  5074.  60h    BYTE    first interrupt number in-use flag
  5075.  61h    BYTE    first interrupt number used
  5076.  62h    BYTE    second interrupt number in-use flag
  5077.  63h    BYTE    second interrupt number used
  5078.  64h    BYTE    first DMA channel in-use flag
  5079.  65h    BYTE    first DMA channel used
  5080.  66h    BYTE    second DMA channel in-use flag
  5081.  67h    BYTE    second DMA channel used
  5082.  68h    BYTE    flags
  5083.  69h    BYTE    reserved
  5084.  6Ah 80 BYTEs    ASCIZ configuration description
  5085.  
  5086. Values for channel run state:
  5087.  0000h    running
  5088.  0001h    being stopped
  5089.  0002h    stopped
  5090.  0003h    nonfunctional
  5091.  
  5092. Values for channel synchronization state:
  5093.  0000h    not in use
  5094.  0002h    used by NetWare, no other requests
  5095.  0004h    used by NetWare, other requests
  5096.  0006h    in use, not needed by NetWare
  5097.  0008h    in use, needed by NetWare
  5098.  000Ah    channel released, NetWare should use it
  5099. --------N-21E3--SFDA-------------------------
  5100. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S TASK INFORMATION
  5101.     AH = E3h subfn DAh
  5102.     DS:SI -> request buffer (see below)
  5103.     ES:DI -> reply buffer (see below)
  5104. Return: AL = status
  5105.         00h successful
  5106.         C6h no console rights
  5107. Notes:    this function is supported by Advanced NetWare 2.1+
  5108.     the calling workstation must have console operator privileges
  5109. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h,AH=E3h/SF=E5h
  5110.  
  5111. Format of request buffer:
  5112. Offset    Size    Description
  5113.  00h    WORD    0003h (length of following data)
  5114.  02h    BYTE    DAh (subfunction "Get Connection's Task Information")
  5115.  03h    WORD    (big-endian) logical connection number
  5116.  
  5117. Format of reply buffer:
  5118. Offset    Size    Description
  5119.  00h    WORD    (call) size of following results record (max 1FEh)
  5120.  02h    BYTE    lock status of connection (see below)
  5121.  03h    var    Lock Status Information (see below)
  5122.  N    BYTE    number of records following
  5123.  N+1    Active Task Information Records [array]
  5124.     Offset    Size    Description
  5125.      00h    BYTE    task number (01h-FFh)
  5126.      01h    BYTE    task state
  5127.             01h in TTS explicit transaction
  5128.             02h in TTS implicit transaction
  5129.             04h shared fileset lock active
  5130.  
  5131. Values for lock status of connection:
  5132.  00h    no locks
  5133.  01h    waiting on physical record lock
  5134.  02h    waiting on file lock
  5135.  03h    waiting on logical record lock
  5136.  04h    waiting on semaphore
  5137.  
  5138. Format of Lock Status Information:
  5139. Offset    Size    Description
  5140. ---lock status 00h---
  5141.  no fields
  5142. ---lock status 01h---
  5143.  00h    BYTE    number of waiting task
  5144.  01h    DWORD    start address
  5145.  05h    DWORD    end address
  5146.  09h    BYTE    volume number
  5147.  0Ah    WORD    directory entry number
  5148.  0Ch 14 BYTEs    ASCIZ filename
  5149. ---lock status 02h---
  5150.  00h    BYTE    number of waiting task
  5151.  01h    BYTE    volume number
  5152.  02h    WORD    directory entry number
  5153.  04h 14 BYTEs    ASCIZ filename
  5154. ---lock status 03h---
  5155.  00h    BYTE    number of waiting task
  5156.  01h    BYTE    length of record name
  5157.  02h  N BYTEs    ASCIZ record name
  5158. ---lock status 04h---
  5159.  00h    BYTE    number of waiting task
  5160.  01h    BYTE    length of semaphore's name
  5161.  02h  N BYTEs    ASCIZ semaphore name
  5162. --------N-21E3--SFDB-------------------------
  5163. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S OPEN FILES
  5164.     AH = E3h subfn DBh
  5165.     DS:SI -> request buffer (see below)
  5166.     ES:DI -> reply buffer (see below)
  5167. Return: AL = status
  5168.         00h successful
  5169.         C6h no console rights
  5170. Notes:    this function is supported by Advanced NetWare 2.1+
  5171.     the calling workstation must have console operator privileges
  5172. SeeAlso: AH=E2h/SF=1Ah,AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DCh,AH=E3h/SF=DFh
  5173. SeeAlso: AH=E3h/SF=E1h
  5174.  
  5175. Format of request buffer:
  5176. Offset    Size    Description
  5177.  00h    WORD    0005h (length of following data)
  5178.  02h    BYTE    DBh (subfunction "Get Connection's Open Files")
  5179.  03h    WORD    (big-endian) logical connection number
  5180.  05h    WORD    (big-endian) last record seen (0000h on first call)
  5181.  
  5182. Format of reply buffer:
  5183. Offset    Size    Description
  5184.  00h    WORD    (call) size of following results record (max 1FEh)
  5185.  02h    WORD    next request record (place in "last record" field on next call)
  5186.         0000h if no more records
  5187.  04h    BYTE    number of records following
  5188.  05h    var    array of File Information Records (see below)
  5189.  
  5190. Format of File Information Record:
  5191. Offset    Size    Description
  5192.  00h    BYTE    task number
  5193.  01h    BYTE    lock flags (see below)
  5194.  02h    BYTE    access flags (see below)
  5195.  03h    BYTE    lock type
  5196.         00h no lock
  5197.         FEh file lock
  5198.         FFh locked by Begin Share File Set
  5199.  04h    BYTE    volume number (00h-1Fh)
  5200.  05h    WORD    (big-endian) directory entry
  5201.  07h 14 BYTEs    ASCIZ filename
  5202.  
  5203. Bitfields for lock flags:
  5204.  bit 0    file is locked
  5205.  bit 1    file opened Shareable
  5206.  bit 2    logged
  5207.  bit 3    file opened Normal
  5208.  bit 6    TTS holding lock
  5209.  bit 7    Transaction Flag set on file
  5210.  
  5211. Bitfields for access flags:
  5212.  bit 0    file open for reading by calling station
  5213.  bit 1    file open for writing by calling station
  5214.  bit 2    deny reads by other stations
  5215.  bit 3    deny writes by other stations
  5216.  bit 4    file detached
  5217.  bit 5    TTS Holding Detach
  5218.  bit 6    TTS Holding Open
  5219. --------N-21E3--SFDC-------------------------
  5220. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTIONS USING A FILE
  5221.     AH = E3h subfn DCh
  5222.     DS:SI -> request buffer (see below)
  5223.     ES:DI -> reply buffer (see below)
  5224. Return: AL = status
  5225.         00h successful
  5226.         C6h no console rights
  5227. Notes:    this function is supported by Advanced NetWare 2.1+
  5228.     the calling workstation must have console operator privileges
  5229. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h
  5230.  
  5231. Format of request buffer:
  5232. Offset    Size    Description
  5233.  00h    WORD    length of following data (max 104h)
  5234.  02h    BYTE    DCh (subfunction "Get Connections Using a File")
  5235.  03h    WORD    (big-endian) last record (0000h on first call)
  5236.  05h    BYTE    directory handle
  5237.  06h    BYTE    length of file path
  5238.  07h  N BYTEs    ASCIZ file path
  5239.  
  5240. Format of reply buffer:
  5241. Offset    Size    Description
  5242.  00h    WORD    (call) size of following results record (max 1FEh)
  5243.  02h    WORD    (big-endian) count of tasks which have opened or logged file
  5244.  04h    WORD    (big-endian) count of tasks which have opened file
  5245.  06h    WORD    (big-endian) count of opens for reading
  5246.  08h    WORD    (big-endian) count of opens for writing
  5247.  0Ah    WORD    (big-endian) deny read count
  5248.  0Ch    WORD    (big-endian) deny write count
  5249.  0Eh    WORD    next request record (place in "last record" field on next call)
  5250.         0000h if no more records
  5251.  10h    BYTE    locked flag
  5252.         00h not locked exclusively
  5253.         else locked exclusively
  5254.  11h    BYTE    number of records following
  5255.  12h    var    array of File Usage Information Records (see below)
  5256.  
  5257. Format of File Usage Information Record:
  5258. Offset    Size    Description
  5259.  00h    WORD    (big-endian) logical connection number
  5260.  02h    BYTE    task number
  5261.  03h    BYTE    lock flags (see AH=E3h/SF=DBh)
  5262.  04h    BYTE    access flags (see AH=E3h/SF=DBh)
  5263.  05h    BYTE    lock type
  5264.         00h no lock
  5265.         FEh file lock
  5266.         FFh locked by Begin Share File Set
  5267. --------N-21E3--SFDD-------------------------
  5268. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY CONN&FILE
  5269.     AH = E3h subfn DDh
  5270.     DS:SI -> request buffer (see below)
  5271.     ES:DI -> reply buffer (see below)
  5272. Return: AL = status
  5273.         00h successful
  5274.         C6h no console rights
  5275.         FFh file not open
  5276. Notes:    this function is supported by Advanced NetWare 2.1+
  5277.     the calling workstation must have console operator privileges
  5278. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DEh,AH=E3h/SF=DFh
  5279.  
  5280. Format of request buffer:
  5281. Offset    Size    Description
  5282.  00h    WORD    0016h (length of following data)
  5283.  02h    BYTE    DDh (subfunction "Get Physical Record Locks by Connection and
  5284.             File")
  5285.  03h    WORD    (big-endian) logical connection number
  5286.  05h    WORD    (big-endian) last record seen (0000h on first call)
  5287.  07h    BYTE    volume number (00h-1Fh)
  5288.  08h    WORD    (big-endian) directory handle
  5289.  0Ah 14 BYTEs    ASCIZ filename
  5290.  
  5291. Format of reply buffer:
  5292. Offset    Size    Description
  5293.  00h    WORD    (call) size of following results record (max 1FEh)
  5294.  02h    WORD    next request record (place in "last record" on next call)
  5295.         0000h if no more records
  5296.  04h    BYTE    number of physical record locks
  5297.  05h    BYTE    number of records following
  5298.  06h    var    array of Physical Record Lock Info records (see below)
  5299.  
  5300. Format of Physical Record Lock Info:
  5301. Offset    Size    Description
  5302.  00h    BYTE    task number
  5303.  01h    BYTE    lock status (see below)
  5304.  02h    DWORD    (big-endian) starting offset of record in file
  5305.  06h    DWORD    (big-endian) ending offset of record in file
  5306.  
  5307. Bitfields for lock status:
  5308.  bit 0    exclusive lock
  5309.  bit 1    shareable lock
  5310.  bit 2    logged
  5311.  bit 6    lock held by TTS
  5312. --------N-21E3--SFDE-------------------------
  5313. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY FILE
  5314.     AH = E3h subfn DEh
  5315.     DS:SI -> request buffer (see below)
  5316.     ES:DI -> reply buffer (see below)
  5317. Return: AL = status
  5318.         00h successful
  5319.         C6h no console rights
  5320.         FFh file not open
  5321. Notes:    this function is supported by Advanced NetWare 2.1+
  5322.     the calling workstation must have console operator privileges
  5323. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh
  5324.  
  5325. Format of request buffer:
  5326. Offset    Size    Description
  5327.  00h    WORD    length of following data (max 104h)
  5328.  02h    BYTE    DEh (subfunction "Get Physical Record Locks by File")
  5329.  03h    WORD    (big-endian) last record seen (0000h on first call)
  5330.  05h    BYTE    directory handle
  5331.  06h    BYTE    length of filename
  5332.  07h  N BYTEs    ASCIZ filename
  5333.  
  5334. Format of reply buffer:
  5335. Offset    Size    Description
  5336.  00h    WORD    (call) size of following results record (max 1FEh)
  5337.  02h    WORD    next request record (place in "last record" on next call)
  5338.         0000h if no more records
  5339.  04h    BYTE    number of physical record locks
  5340.  05h    BYTE    number of records following
  5341.  06h    var    array of Physical Record Lock Info records (see below)
  5342.  
  5343. Format of Physical Record Lock Info:
  5344. Offset    Size    Description
  5345.  00h    WORD    (big-endian) number of tasks logging record
  5346.  02h    WORD    (big-endian) number of tasks with shareable lock
  5347.  04h    DWORD    (big-endian) starting offset of record in file
  5348.  08h    DWORD    (big-endian) ending offset of record in file
  5349.  0Ch    WORD    (big-endian) logical connection number
  5350.  0Eh    BYTE    task number
  5351.  0Fh    BYTE    lock type
  5352.         00h none
  5353.         FEh file lock
  5354.         FFh Begin Share File Set lock
  5355. --------N-21E3--SFDF-------------------------
  5356. INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORDS BY CONNECTION
  5357.     AH = E3h subfn DFh
  5358.     DS:SI -> request buffer (see below)
  5359.     ES:DI -> reply buffer (see below)
  5360. Return: AL = status
  5361.         00h successful
  5362.         C6h no console rights
  5363. Notes:    this function is supported by Advanced NetWare 2.1+
  5364.     the calling workstation must have console operator privileges
  5365. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=E0h,AH=E3h/SF=E2h
  5366.  
  5367. Format of request buffer:
  5368. Offset    Size    Description
  5369.  00h    WORD    0005h (length of following data)
  5370.  02h    BYTE    DFh (subfunction "Get Logical Records By Connection")
  5371.  03h    WORD    (big-endian) logical connection number
  5372.  05h    WORD    (big-endian) last record seen (0000h on first call)
  5373.  
  5374. Format of reply buffer:
  5375. Offset    Size    Description
  5376.  00h    WORD    (call) size of following results record (max 1FEh)
  5377.  02h    WORD    next request record (place in "last record" field on next call)
  5378.         0000h if no more locked records
  5379.  09h    BYTE    number of records following
  5380.  0Ah    var    array of Logical Lock Information Records (see below)
  5381.  
  5382. Format of Logical Lock Information Record:
  5383. Offset    Size    Description
  5384.  00h    BYTE    task number
  5385.  01h    BYTE    lock status (see AH=E3h/SF=DDh)
  5386.  02h    BYTE    length of logical lock's name
  5387.  03h  N BYTEs    logical lock's name
  5388. --------N-21E3--SFE0-------------------------
  5389. INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORD INFORMATION
  5390.     AH = E3h subfn E0h
  5391.     DS:SI -> request buffer (see below)
  5392.     ES:DI -> reply buffer (see below)
  5393. Return: AL = status
  5394.         00h successful
  5395.         C6h no console rights
  5396. Notes:    this function is supported by Advanced NetWare 2.1+
  5397.     the calling workstation must have console operator privileges
  5398. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
  5399.  
  5400. Format of request buffer:
  5401. Offset    Size    Description
  5402.  00h    WORD    length of following data (max 67h)
  5403.  02h    BYTE    E0h (subfunction "Get Logical Record Information")
  5404.  03h    WORD    (big-endian) last record seen (0000h on first call)
  5405.  05h    BYTE    length of logical record's name
  5406.  06h  N BYTEs    logical record's name
  5407.  
  5408. Format of reply buffer:
  5409. Offset    Size    Description
  5410.  00h    WORD    (call) size of following results record (max 200h)
  5411.  02h    WORD    (big-endian) number of logical connections logging the record
  5412.  04h    WORD    (big-endian) number of logical connections with shareable lock
  5413.  06h    WORD    (big-endian) next request record (place in "last record" field
  5414.             on next call)
  5415.  08h    BYTE    locked exclusively if nonzero
  5416.  09h    BYTE    number of records following
  5417.  0Ah    var    array of Task Information Records (see below)
  5418.  
  5419. Format of Task Information Record:
  5420. Offset    Size    Description
  5421.  00h    WORD    (big-endian) logical connection number
  5422.  02h    BYTE    task number
  5423.  03h    BYTE    lock status (see AH=E3h/SF=DDh)
  5424. --------N-21E3--SFE1-------------------------
  5425. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S SEMAPHORES
  5426.     AH = E3h subfn E1h
  5427.     DS:SI -> request buffer (see below)
  5428.     ES:DI -> reply buffer (see below)
  5429. Return: AL = status
  5430.         00h successful
  5431.         C6h no console rights
  5432. Notes:    this function is supported by Advanced NetWare 2.1+
  5433.     the calling workstation must have console operator privileges
  5434. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
  5435.  
  5436. Format of request buffer:
  5437. Offset    Size    Description
  5438.  00h    WORD    0005h (length of following data)
  5439.  02h    BYTE    E1h (subfunction "Get Connection's Semaphores")
  5440.  03h    WORD    (big-endian) logical connection number
  5441.  05h    WORD    (big-endian) last record seen (0000h on first call)
  5442.  
  5443. Format of reply buffer:
  5444. Offset    Size    Description
  5445.  00h    WORD    (call) size of following results record (max 1FEh)
  5446.  02h    WORD    next request record (place in "last record" field on next call)
  5447.  04h    BYTE    number of records following
  5448.  05h    var    array of Semaphore Information Records
  5449.  
  5450. Format of Semaphore Information Record:
  5451. Offset    Size    Description
  5452.  00h    WORD    (big-endian) open count
  5453.  02h    BYTE    semaphore value (-128 to 127)
  5454.  03h    BYTE    task number
  5455.  04h    BYTE    lock type
  5456.  05h    BYTE    length of semaphore's name
  5457.  06h  N BYTEs    semaphore's name
  5458.      14 BYTEs    filename
  5459. --------N-21E3--SFE2-------------------------
  5460. INT 21 - Novell NetWare - FILE SERVER - GET SEMAPHORE INFORMATION
  5461.     AH = E3h subfn E2h
  5462.     DS:SI -> request buffer (see below)
  5463.     ES:DI -> reply buffer (see below)
  5464. Return: AL = status
  5465.         00h successful
  5466.         C6h no console rights
  5467. Notes:    this function is supported by Advanced NetWare 2.1+
  5468.     the calling workstation must have console operator privileges
  5469. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E1h
  5470.  
  5471. Format of request buffer:
  5472. Offset    Size    Description
  5473.  00h    WORD    length of following data (max 83h)
  5474.  02h    BYTE    E2h (subfunction "Get LAN Driver's Configuration Information")
  5475.  03h    WORD    (big-endian) last record seen (0000h on first call)
  5476.  05h    BYTE    length of semaphore's name (01h-7Fh)
  5477.  06h  N BYTEs    semaphore's name
  5478.  
  5479. Format of reply buffer:
  5480. Offset    Size    Description
  5481.  00h    WORD    (call) size of following results buffer (max 1FEh)
  5482.  02h    WORD    next request record (place in "last record" on next call)
  5483.         0000h if no more
  5484.  04h    WORD    (big-endian) number of logical connections opening semaphore
  5485.  06h    BYTE    semaphore value (-127 to 128)
  5486.  07h    BYTE    number of records following
  5487.  08h    var    array of Semaphore Information records (see below)
  5488.  
  5489. Format of Semaphore Information:
  5490. Offset    Size    Description
  5491.  00h    WORD    (big-endian) logical connection number
  5492.  02h    BYTE    task number
  5493. --------N-21E3--SFE3-------------------------
  5494. INT 21 - Novell NetWare - FILE SERVER - GET LAN DRIVER'S CONFIGURATION INFO
  5495.     AH = E3h subfn E3h
  5496.     DS:SI -> request buffer (see below)
  5497.     ES:DI -> reply buffer (see below)
  5498. Return: AL = status
  5499.         00h successful
  5500.         C6h no console rights
  5501. Notes:    this function is supported by Advanced NetWare 2.1+
  5502.     the calling workstation must have console operator privileges
  5503. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E7h,AH=E3h/SF=E8h
  5504.  
  5505. Format of request buffer:
  5506. Offset    Size    Description
  5507.  00h    WORD    0002h (length of following data)
  5508.  02h    BYTE    E3h (subfunction "Get LAN Driver's Configuration Information")
  5509.  03h    BYTE    LAN board (00h-03h)
  5510.  
  5511. Format of reply buffer:
  5512. Offset    Size    Description
  5513.  00h    WORD    (call) 00ACh (size of following results buffer)
  5514.  02h  4 BYTEs    network number
  5515.  06h  6 BYTEs    node number
  5516.  0Ch    BYTE    LAN driver installed (00h no--remaining fields invalid)
  5517.  0Dh    BYTE    option number selected at configuration time
  5518.  0Eh 160 BYTEs    configuration text
  5519.         ASCIZ hardware type
  5520.         ASCIZ hardware settings
  5521. --------N-21E3--SFE5-------------------------
  5522. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S USAGE STATISTICS
  5523.     AH = E3h subfn E5h
  5524.     DS:SI -> request buffer (see below)
  5525.     ES:DI -> reply buffer (see below)
  5526. Return: AL = status
  5527.         00h successful
  5528.         C6h no console rights
  5529. Notes:    this function is supported by Advanced NetWare 2.1+
  5530.     one must have console operator privileges to get statistics for logical
  5531.       connections other than one's own
  5532. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=E1h
  5533.  
  5534. Format of request buffer:
  5535. Offset    Size    Description
  5536.  00h    WORD    0003h (length of following data)
  5537.  02h    BYTE    E5h (subfunction "Get Connection's Usage Statistics")
  5538.  03h    WORD    (big-endian) logical connection number
  5539.  
  5540. Format of reply buffer:
  5541. Offset    Size    Description
  5542.  00h    WORD    (call) 0014h (size of following results record)
  5543.  02h    DWORD    (big-endian) clock ticks since server started
  5544.  06h  6 BYTEs    bytes read
  5545.  0Ch  6 BYTEs    bytes written
  5546.  12h    DWORD    (big-endian) total request packets
  5547. --------N-21E3--SFE6-------------------------
  5548. INT 21 - Novell NetWare - FILE SERVER - GET BINDERY OBJECT DISK SPACE LEFT
  5549.     AH = E3h subfn E6h
  5550.     DS:SI -> request buffer (see below)
  5551.     ES:DI -> reply buffer (see below)
  5552. Return: AL = status
  5553.         00h successful
  5554.         C6h no console rights
  5555. Notes:    this function is supported by Advanced NetWare 2.1+
  5556.     one must have console operator privileges to get the free space for
  5557.       other bindery objects
  5558. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E8h,AH=E3h/SF=E9h
  5559.  
  5560. Format of request buffer:
  5561. Offset    Size    Description
  5562.  00h    WORD    0005h (length of following data)
  5563.  02h    BYTE    E6h (subfunction "Get Bindery Object Disk Space Left")
  5564.  03h    DWORD    (big-endian) object ID
  5565.  
  5566. Format of reply buffer:
  5567. Offset    Size    Description
  5568.  00h    WORD    (call) 000Fh (size of following results buffer)
  5569.  02h    DWORD    (big-endian) clock ticks elapsed since server started
  5570.  06h    DWORD    (big-endian) object ID
  5571.  0Ah    DWORD    (big-endian) 4K disk blocks available to user
  5572.  0Eh    BYTE    restrictions (00h enforced, FFh not enforced)
  5573. --------N-21E3--SFE7-------------------------
  5574. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LAN I/O STATISTICS
  5575.     AH = E3h subfn E7h
  5576.     DS:SI -> request buffer (see below)
  5577.     ES:DI -> reply buffer (see below)
  5578. Return: AL = status
  5579.         00h successful
  5580. Note:    this function is supported by Advanced NetWare 2.1+
  5581. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=D3h,AH=E3h/SF=E8h,AH=E7h
  5582.  
  5583. Format of request buffer:
  5584. Offset    Size    Description
  5585.  00h    WORD    0001h (length of following data)
  5586.  02h    BYTE    E7h (subfunction "Get File Server LAN I/O Statistics")
  5587.  
  5588. Format of reply buffer:
  5589. Offset    Size    Description
  5590.  00h    WORD    (call) 0042h (size of following results buffer)
  5591.  02h    DWORD    clock ticks since system started
  5592.  06h    WORD    total routing buffers
  5593.  08h    WORD    maximum routing buffers used
  5594.  0Ah    WORD    current routing buffers used
  5595.  0Ch    DWORD    total file service packets
  5596.  10h    WORD    number of file service packets buffered
  5597.  12h    WORD    number of invalid connection packets
  5598.  14h    WORD    packets with bad logical connection numbers
  5599.  16h    WORD    number of packets received during processing
  5600.  18h    WORD    number of requests reprocessed
  5601.  1Ah    WORD    packets with bad sequence numbers
  5602.  1Ch    WORD    number of duplicate replies sent
  5603.  1Eh    WORD    number of acknowledgements sent
  5604.  20h    WORD    number of packets with bad request types
  5605.  22h    WORD    requests to attach to ws for which a request is being processed
  5606.  24h    WORD    requests to attach from ws which is already attaching
  5607.  26h    WORD    number of forged detach requests
  5608.  28h    WORD    detach requests with bad connection number
  5609.  2Ah    WORD    requests to detach from ws for which requests pending
  5610.  2Ch    WORD    number of cancelled replies
  5611.  2Eh    WORD    packets discarded due to excessive hop count
  5612.  30h    WORD    packets discarded due to unknown net
  5613.  32h    WORD    incoming packets discarded for lack of DGroup buffer
  5614.  34h    WORD    outgoing packets discarded due to lack of buffer
  5615.  36h    WORD    received packets destined for B,C, or D side drivers
  5616.  38h    DWORD    number of NetBIOS packets propagated through net
  5617.  3Ch    DWORD    total number of non-file-service packets
  5618.  40h    DWORD    total number of routed packets
  5619. Note:    all fields except the first are big-endian
  5620. --------N-21E3--SFE8-------------------------
  5621. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER MISC INFORMATION
  5622.     AH = E3h subfn E8h
  5623.     DS:SI -> request buffer (see below)
  5624.     ES:DI -> reply buffer (see below)
  5625. Return: AL = status
  5626.         00h successful
  5627.         C6h no console rights
  5628. Note:    this function is supported by Advanced NetWare 2.1+
  5629. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E7h
  5630.  
  5631. Format of request buffer:
  5632. Offset    Size    Description
  5633.  00h    WORD    0001h (length of following data)
  5634.  02h    BYTE    E8h (subfunction "Get File Server Misc Information")
  5635.  
  5636. Format of reply buffer:
  5637. Offset    Size    Description
  5638.  00h    WORD    (call) size of following results buffer (max 0048h)
  5639.  02h    DWORD    (big-endian) clock ticks since system started
  5640.  06h    BYTE    CPU type
  5641.         00h Motorola 68000
  5642.         01h Intel 8086, 8088, or V20
  5643.         02h Intel 80286+
  5644.  07h    BYTE    reserved
  5645.  08h    BYTE    number of service processes in server
  5646.  09h    BYTE    server utilization in percent
  5647.  0Ah    WORD    (big-endian) maximum bindery objects set by configuration
  5648.         0000h = unlimited
  5649.  0Ch    WORD    (big-endian) maximum number of bindery objects used
  5650.  0Eh    WORD    (big-endian) current number of bindery objects in use
  5651.  10h    WORD    (big-endian) total server memory in KB
  5652.  12h    WORD    (big-endian) wasted server memory in KB
  5653.         normally 0000h
  5654.  14h    WORD    number of records following (01h-03h)
  5655.  16h    var    array of Dynamic Memory Information records (see below)
  5656.  
  5657. Format of Dynamic Memory Information:
  5658. Offset    Size    Description
  5659.  00h    DWORD    (big-endian) total dynamic space
  5660.  04h    DWORD    (big-endian) maximum dynamic space used
  5661.  08h    DWORD    (big-endian) current dynamic space usage
  5662. --------N-21E3--SFE9-------------------------
  5663. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFORMATION
  5664.     AH = E3h subfn E9h
  5665.     DS:SI -> request buffer (see below)
  5666.     ES:DI -> reply buffer (see below)
  5667. Return: AL = status
  5668.         00h successful
  5669. Notes:    this function is supported by Advanced NetWare 2.1+
  5670. SeeAlso: AH=DAh,AH=E2h/SF=15h
  5671.  
  5672. Format of request buffer:
  5673. Offset    Size    Description
  5674.  00h    WORD    0002h (length of following data)
  5675.  02h    BYTE    E9h (subfunction "Get Volume Information")
  5676.  03h    BYTE    directory handle
  5677.  
  5678. Format of reply buffer:
  5679. Offset    Size    Description
  5680.  00h    WORD    (call) 0028h (length of following results buffer)
  5681.  02h    DWORD    (big-endian) elapsed system time
  5682.  06h    BYTE    volume number
  5683.  07h    BYTE    logical drive number
  5684.  08h    WORD    (big-endian) sectors per block
  5685.  0Ah    WORD    (big-endian) starting block
  5686.  0Ch    WORD    (big-endian) total blocks on volume
  5687.  0Eh    WORD    (big-endian) blocks available on volume
  5688.  10h    WORD    (big-endian) total directory slots
  5689.  12h    WORD    (big-endian) directory slots available
  5690.  14h    WORD    (big-endian) maximum directory entries actually used
  5691.  16h    BYTE    flag: volume hashed if nonzero
  5692.  17h    BYTE    flag: volume cached if nonzero
  5693.  18h    BYTE    flag: volume removable if nonzero
  5694.  19h    BYTE    flag: volume mounted if nonzero
  5695.  1Ah 16 BYTEs    NUL-padded volume name
  5696. --------N-21E4-------------------------------
  5697. INT 21 O - Novell NetWare - SET FILE ATTRIBUTES (FCB)
  5698.     AH = E4h
  5699.     CL = file attributes (see below)
  5700.     DX:DX -> FCB (see AH=0Fh)
  5701. Return: AL = error code
  5702. Note:    this function was added in NetWare 4.0, but was removed some time prior
  5703.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  5704.       documentation
  5705. SeeAlso: AX=4301h
  5706.  
  5707. Bitfields for file attributes:
  5708.  bit 0    read only
  5709.  bit 1    hidden
  5710.  bit 2    system
  5711.  bit 7    shareable
  5712. --------v-21E4-------------------------------
  5713. INT 21 - VIRUS - "Anarkia" - INSTALLATION CHECK
  5714.     AH = E4h
  5715. Return: AH = 04h if resident
  5716. SeeAlso: AH=E1h"VIRUS",AH=E7h"VIRUS"
  5717. --------T-21E400-----------------------------
  5718. INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
  5719.     AX = E400h
  5720. Return: AL = 00h if DoubleDOS not present
  5721.        = 01h if running in visible DoubleDOS partition
  5722.        = 02h if running in the invisible DoubleDOS partition
  5723. SeeAlso: AH=E5h"DoubleDOS",AX=F400h
  5724. --------E-21E400-----------------------------
  5725. INT 21 - OS/286, OS/386 - CHAIN TO REAL-MODE HANDLER
  5726.     AX = E400h
  5727.     ???
  5728. Return: ???
  5729. Note:    protected mode only???
  5730. --------E-21E402-----------------------------
  5731. INT 21 - OS/286, OS/386 - SET PROTECTED-MODE TASK GATE
  5732.     AX = E402h
  5733.     ???
  5734. Return: ???
  5735. Note:    protected mode only???
  5736. SeeAlso: AX=E403h
  5737. --------E-21E403-----------------------------
  5738. INT 21 - OS/286, OS/386 - REMOVE PROTECTED-MODE TASK GATE
  5739.     AX = E403h
  5740.     ???
  5741. Return: ???
  5742. Note:    protected mode only???
  5743. SeeAlso: AX=E402h
  5744. --------N-21E5-------------------------------
  5745. INT 21 O - Novell NetWare - UPDATE FILE SIZE (FCB)
  5746.     AH = E5h
  5747.     DS:DX -> FCB (see AH=0Fh)
  5748. Return: AL = (unreliable) return code
  5749. Notes:    this function was added in NetWare 4.0, but was removed some time prior
  5750.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  5751.       documentation
  5752.     on success, NetWare sets AL to zero; on errors it restores AL
  5753. --------T-21E5-------------------------------
  5754. INT 21 - DoubleDOS - OTHER PROGRAM STATUS
  5755.     AH = E5h
  5756. Return: AL = 00h no program in other partition
  5757.        = 01h program in other partition is running
  5758.        = 02h program in other partition is suspended
  5759. SeeAlso: AX=E400h"DoubleDOS",AH=F5h"DoubleDOS"
  5760. --------E-21E500-----------------------------
  5761. INT 21 - OS/286, OS/386 - HEAP MANAGEMENT STRATEGY
  5762.     AX = E500h
  5763.     ???
  5764. Return: ???
  5765. SeeAlso: AX=E501h
  5766. --------E-21E501-----------------------------
  5767. INT 21 - OS/286, OS/386 - FORCE HEAP COMPACTION
  5768.     AX = E501h
  5769.     ???
  5770. Return: ???
  5771. SeeAlso: AX=E500h
  5772. --------N-21E6-------------------------------
  5773. INT 21 O - Novell NetWare - COPY FILE TO FILE (FCB)
  5774.     AH = E6h
  5775.     CX:DX = number of bytes to copy
  5776.     DS:SI -> opened source FCB
  5777.     ES:DI -> opened destination FCB
  5778. Return: AL = error code
  5779.     CX = ???
  5780.     DX = ???
  5781. Note:    this function was added in NetWare 4.0, but was removed some time prior
  5782.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  5783.       documentation
  5784. --------E-21E6-------------------------------
  5785. INT 21 P - OS/286, OS/386 - ISSUE REAL PROCEDURE SIGNAL FROM PROTECTED MODE
  5786.     AH = E6h
  5787.     ???
  5788. Return: ???
  5789. SeeAlso: AH=E2h"OS/286"
  5790. --------N-21E7-------------------------------
  5791. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DATE AND TIME
  5792.     AH = E7h
  5793.     DS:DX -> date/time buffer (see below)
  5794. Return: AL = error code
  5795.         00h successful
  5796.         FFh unsuccessful
  5797. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  5798.       Alloy NTNX, and Banyan VINES
  5799. SeeAlso: AH=2Ah,AH=2Ch,AX=5FC0h,AH=E3h/SF=CAh
  5800.  
  5801. Format of date/time buffer:
  5802. Offset    Size    Description
  5803.  00h    BYTE    year (80-99 = 1980-1999, 0-79 = 2000-2079)
  5804.  01h    BYTE    month (1=Jan)
  5805.  02h    BYTE    day
  5806.  03h    BYTE    hours
  5807.  04h    BYTE    minutes
  5808.  05h    BYTE    seconds
  5809.  06h    BYTE    day of week (0 = Sunday) (Novell and NTNX only)
  5810. --------E-21E7-------------------------------
  5811. INT 21 - OS/286, OS/386 - CREATE CODE SEGMENT
  5812.     AH = E7h
  5813.     ???
  5814. Return: ???
  5815. SeeAlso: AH=E8h"OS/286",AH=E9h"OS/286",AH=EAh"OS/286"
  5816. --------v-21E7-------------------------------
  5817. INT 21 - VIRUS - "Spyer"/"Kiev" - INSTALLATION CHECK
  5818.     AH = E7h
  5819. Return: AH = 78h if resident
  5820. SeeAlso: AH=E4h"VIRUS",AX=EC59h
  5821. --------N-21E8-------------------------------
  5822. INT 21 O - Novell NetWare, Alloy NTNX - SET FCB RE-OPEN MODE
  5823.     AH = E8h
  5824.     DL = mode
  5825.         00h no automatic re-open
  5826.         01h auto re-open
  5827. Return: AL = error code
  5828. Desc:    provided backward compatibility with a bug in CP/M and early DOS vers
  5829. Note:    this function was added in NetWare 4.6, but was removed some time prior
  5830.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  5831.       documentation
  5832. --------E-21E8-------------------------------
  5833. INT 21 - OS/286, OS/386 - SEGMENT CREATION
  5834.     AH = E8h
  5835.     AL = type
  5836.         00h data segment
  5837.         01h data window/alias
  5838.         02h real segment
  5839.         03h real window/alias
  5840.         06h shareable segment
  5841.     ???
  5842. Return: ???
  5843. SeeAlso: AH=E7h"OS/286",AH=E9h"OS/286"
  5844. --------T-21E8-------------------------------
  5845. INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
  5846.     AH = E8h
  5847.     AL = 00h set flags for this program
  5848.        = 01h set flags for other program
  5849.     DX = keyboard control flags (see below)
  5850. Return: DX = previous flags
  5851. Notes:    disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  5852.       disabling any of the other keystrokes disables them completely
  5853.     identical to AH=F8h
  5854. SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E3h"DoubleDOS"
  5855. SeeAlso: AH=F8h"DoubleDOS"
  5856.  
  5857. Bitfields for keyboard control flags:
  5858.  bit 0    menu
  5859.  bit 1    exchange
  5860.  bit 2    entire keyboard enable/disable
  5861.  bit 3    Ctrl-C
  5862.  bit 4    Ctrl-PrtSc
  5863.  bit 5    Alt/Erase
  5864.  bit 6    Ctrl-Break
  5865.  bit 7    Ctrl-NumLock
  5866.  bit 8    shift-PrtSc
  5867.  bit 9-13 undefined
  5868.  bit 14 cancel key (clear keyboard buffer)
  5869.  bit 15 suspend key
  5870. Note:    setting a bit enables the corresponding key or operatin, clearing a
  5871.       bit disables it
  5872. --------E-21E9-------------------------------
  5873. INT 21 P - OS/286, OS/386 - CHANGE SEGMENTS
  5874.     AH = E9h
  5875.     AL = function
  5876.         01h change code segment parameters
  5877.         02h change data segment parameters
  5878.         05h adjust segment limit
  5879.         06h change segment base address
  5880.     ???
  5881. Return: ???
  5882. SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=EAh"OS/286",AH=EDh"OS/286"
  5883. SeeAlso: INT 31/AX=0007h,INT 31/AX=0008h
  5884. --------T-21E9-------------------------------
  5885. INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
  5886.     AH = E9h
  5887.     AL = 00h visible program gets 70%, invisible gets 30% (default)
  5888.        = 01h visible program gets 50%, invisible gets 50%
  5889.        = 02h visible program gets 30%, invisible gets 70%
  5890.        = 03h Top program gets 70%, bottom program gets 30%
  5891.        = 04h Top program gets 30%, bottom program gets 70%
  5892.        = 05h get current priority
  5893.         Return: AL = priority setting
  5894. Note:    identical to AH=F9h
  5895. SeeAlso: AH=EAh"DoubleDOS",AH=EBh"DoubleDOS",AH=F9h"DoubleDOS"
  5896. --------N-21E900-----------------------------
  5897. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY HANDLE
  5898.     AX = E900h
  5899.     DX = drive number to check (0 = A:, ..., 25 = Z:, 26 ... 31)
  5900. Return: AL = directory handle
  5901.     AH = flags (drive not mapped if none set)
  5902.         bit 0: permanent handle
  5903.         bit 1: temporary handle
  5904.         bit 7: mapped to local drive
  5905. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  5906.       Alloy NTNX
  5907. SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=01h,AH=E2h/SF=0Ah
  5908. --------N-21E905-----------------------------
  5909. INT 21 - Novell NetWare shell 3.01 - MAP A FAKE ROOT DIRECTORY
  5910.     AX = E905h
  5911.     BL = drive number (0=default, 1=A:, ...)
  5912.     DS:DX -> ASCIZ path for fake root (may include server name or be empty)
  5913. Return: CF set on error
  5914.         AL = error code (03h,0Fh,11h) (see AH=59h)
  5915.     CF clear if successful
  5916. Note:    if drive is not currently mapped, a drive mapping will be created
  5917. SeeAlso: AX=E906h
  5918. --------N-21E906-----------------------------
  5919. INT 21 - Novell NetWare shell 3.01 - DELETE FAKE ROOT DIRECTORY
  5920.     AX = E906h
  5921.     BL = drive number (0=default, 1=A:, ...)
  5922. Note:    drive remains mapped
  5923. SeeAlso: AX=E905h
  5924. --------N-21E907-----------------------------
  5925. INT 21 - Novell NetWare shell 3.01 - GET RELATIVE DRIVE DEPTH
  5926.     AX = E907h
  5927.     BL = drive number (0=default, 1=A:, ...)
  5928. Return: AL = number of directories below the fake root
  5929.         FFh if no fake root assigned
  5930. SeeAlso: AX=E905h
  5931. --------N-21E908BL00-------------------------
  5932. INT 21 - Novell NetWare shell 3.01 - SET SHOW DOTS
  5933.     AX = E908h
  5934.     BL = 00h    don't return '.' or '..' during directory scans
  5935.        = nonzero    directory scans will return '.' or '..' entries
  5936. Return: BL = previous show-dots setting
  5937. --------N-21EA-------------------------------
  5938. INT 21 - Novell NetWare, Alloy NTNX - RETURN SHELL VERSION
  5939.     AH = EAh
  5940.     AL = return version environment string
  5941.         00h        don't return string
  5942.         nonzero    return string in 40-byte buffer pointed to by ES:DI
  5943.         Return: buffer filled with three null-terminated entries:
  5944.             major operating system
  5945.             version
  5946.             hardware type
  5947. Return: AH = operating system (00h = MS-DOS)
  5948.     AL = hardware type
  5949.         00h IBM PC
  5950.         01h Victor 9000
  5951.     BH = major shell version
  5952.     BL = minor shell version
  5953.     CH = (v3.01+) shell type
  5954.         00h conventional memory
  5955.         01h expanded memory
  5956.         02h extended memory
  5957.     CL = shell revision number
  5958. Note:    this function is supported by NetWare 4.6 and Advanced NetWare 1.0+
  5959. --------T-21EA-------------------------------
  5960. INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
  5961.     AH = EAh
  5962. Return: task switching turned off
  5963. SeeAlso: AH=E9h"DoubleDOS",AH=EBh"DoubleDOS",AH=FAh"DoubleDOS"
  5964. SeeAlso: INT FA"DoubleDOS"
  5965. --------E-21EA-------------------------------
  5966. INT 21 - OS/286, OS/386 - ALLOCATE HUGE SEGMENT
  5967.     AH = EAh
  5968.     ???
  5969. Return: ???
  5970. Note:    protected mode only???
  5971. SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=E9h"OS/286"
  5972. --------N-21EB-------------------------------
  5973. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG FILE
  5974.     AH = EBh
  5975.     DS:DX -> ASCIZ filename
  5976.     if function C6h lock mode 01h:
  5977.         AL = flags
  5978.         00h log file only
  5979.         01h lock as well as log file
  5980.             BP = lock timeout in timer ticks (1/18 second)
  5981.             0000h = don't wait if file already locked
  5982. Return: AL = error code
  5983.         00h successful
  5984.         96h no dynamic memory for file
  5985.         FEh timed out
  5986.         FFh failed
  5987. Desc:    add the location and size of the specified file to the log table and
  5988.       optionally lock the file
  5989. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  5990.       Alloy NTNX
  5991. SeeAlso: AH=BCh"NetWare",AH=CAh,AH=D0h,AH=ECh"NetWare",AH=EDh"NetWare"
  5992. --------T-21EB-------------------------------
  5993. INT 21 - DoubleDOS - TURN ON TASK SWITCHING
  5994.     AH = EBh
  5995. Return: task switching turned on
  5996. SeeAlso: AH=E9h"DoubleDOS",AH=EAh"DoubleDOS",AH=FBh"DoubleDOS"
  5997. SeeAlso: INT FB"DoubleDOS"
  5998. --------E-21EB00-----------------------------
  5999. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY LINEAR ADDRESS
  6000.     AX = EB00h
  6001.     ???
  6002. Return: ???
  6003. Note:    protected mode only???
  6004. SeeAlso: AX=EB02h,AX=EB04h,INT 31/AX=0506h
  6005. --------E-21EB02-----------------------------
  6006. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 16-BIT SEGMENT:OFFSET
  6007.     AX = EB02h
  6008.     ???
  6009. Return: ???
  6010. Note:    protected mode only???
  6011. SeeAlso: AX=EB00h,AX=EB04h
  6012. --------E-21EB03-----------------------------
  6013. INT 21 - OS/386 VMM - FREE MAPPED PAGES
  6014.     AX = EB03h
  6015.     ???
  6016. Return: ???
  6017. Note:    protected mode only???
  6018. SeeAlso: AX=EB05h,INT 31/AX=0801h
  6019. --------E-21EB04-----------------------------
  6020. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 32-BIT SEGMENT:OFFSET
  6021.     AX = EB04h
  6022.     ???
  6023. Return: ???
  6024. Note:    protected mode only???
  6025. SeeAlso: AX=EB00h,AX=EB02h
  6026. --------E-21EB05-----------------------------
  6027. INT 21 - OS/386 VMM - MAP PAGES
  6028.     AX = EB05h
  6029.     ???
  6030. Return: ???
  6031. Note:    protected mode only???
  6032. SeeAlso: AX=EB03h,INT 31/AX=0800h
  6033. --------E-21EB06-----------------------------
  6034. INT 21 - OS/386 VMM - LOCK PAGES IN MEMORY
  6035.     AX = EB06h
  6036.     ???
  6037. Return: ???
  6038. Note:    protected mode only???
  6039. SeeAlso: AX=EB07h,INT 31/AX=0600h
  6040. --------E-21EB07-----------------------------
  6041. INT 21 - OS/386 VMM - UNLOCK MEMORY PAGES
  6042.     AX = EB07h
  6043.     ???
  6044. Return: ???
  6045. Note:    protected mode only???
  6046. SeeAlso: AX=EB06h,INT 31/AX=0601h
  6047. --------N-21EC-------------------------------
  6048. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE
  6049.     AH = ECh
  6050.     DS:DX -> ASCIZ filename
  6051. Return: AL = status
  6052.         00h successful
  6053.         FFh file not found
  6054. Desc:    unlock the specified file but retain it in the log table
  6055. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  6056.       Alloy NTNX
  6057. SeeAlso: AH=CDh,AH=EBh"NetWare",AH=EDh"NetWare"
  6058. --------T-21EC-------------------------------
  6059. INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
  6060.     AH = ECh
  6061. Return: ES = segment of virtual screen
  6062. Desc:    determine the address of the virtual screen to which the program
  6063.       should write instead of the actual video memory, so that the
  6064.       multitasked programs do not interfere with each other's output
  6065. Notes:    screen address can change if task-switching is on!!
  6066.     identical to AH=FCh
  6067. SeeAlso: INT 10/AH=FEh,AH=FCh"DoubleDOS",INT FC"DoubleDOS"
  6068. --------E-21EC-------------------------------
  6069. INT 21 - OS/286, OS/386 - BLOCK TRANSFER
  6070.     AH = ECh
  6071.     ???
  6072. Return: ???
  6073. --------v-21EC59-----------------------------
  6074. INT 21 - VIRUS - "Terror" - INSTALLATION CHECK
  6075.     AX = EC59h
  6076. Return: BP = EC59h if resident
  6077. SeeAlso: AH=E7h"VIRUS",AH=EEh"VIRUS"
  6078. --------N-21ED-------------------------------
  6079. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE
  6080.     AH = EDh
  6081.     DS:DX -> ASCIZ filename
  6082. Return: AL = status
  6083.         00h successful
  6084.         FFh no files found
  6085. Desc:    unlock the file and remove it from the log table
  6086. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  6087.       Alloy NTNX
  6088. SeeAlso: AH=CBh"NetWare",AH=CEh,AH=CFh,AH=EBh"NetWare",AH=ECh"NetWare"
  6089. --------E-21ED-------------------------------
  6090. INT 21 - OS/286, OS/386 - GET SEGMENT OR WINDOW DESCRIPTOR
  6091.     AH = EDh
  6092.     ???
  6093. Return: ???
  6094. Note:    protected mode only???
  6095. SeeAlso: AH=E9h"OS/286"
  6096. --------N-21EE-------------------------------
  6097. INT 21 - Novell NetWare - CONNECTION SERVICES - GET PHYSICAL STATION ADDRESS
  6098.     AH = EEh
  6099. Return: CX:BX:AX = six-byte physical address
  6100. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  6101.       Alloy NTNX
  6102. SeeAlso: AH=E3h/SF=13h
  6103. --------T-21EE-------------------------------
  6104. INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
  6105.     AH = EEh
  6106.     AL = number of 55ms time slices to give away
  6107. Return: returns after giving away time slices
  6108. SeeAlso: AH=FEh"DoubleDOS",INT FE"DoubleDOS"
  6109. --------v-21EE-------------------------------
  6110. INT 21 - VIRUS - "Jerusalem-G", "Pregnant" - INSTALLATION CHECK
  6111.     AH = EEh
  6112. Return: AX = 0300h if "Jerusalem-G" resident
  6113.     AL = 05h if "Pregnant" resident
  6114. SeeAlso: AH=DDh"VIRUS",AX=EC59h,AH=F0h"VIRUS"
  6115. --------N-21EF00-----------------------------
  6116. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE HANDLE TABLE
  6117.     AX = EF00h
  6118. Return: ES:SI -> network shell's 32-byte drive handle table
  6119.     AX = 0000h
  6120. Notes:    this function is supported by Advanced NetWare 1.0+
  6121.     each byte in the drive handle table contains the directory handle for
  6122.       the corresponding drive, or 00h if not mapped to a directory
  6123. SeeAlso: AX=EF01h,AX=EF02h,AX=EF03h,AX=EF04h
  6124. --------N-21EF01-----------------------------
  6125. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE FLAG TABLE
  6126.     AX = EF01h
  6127. Return: ES:SI -> network shell's 32-byte drive flag table (see below)
  6128.     AX = 0000h
  6129. Notes:    this function is supported by Advanced NetWare 1.0+
  6130.     each byte in the drive flag table corresponds to a drive
  6131. SeeAlso: AX=EF00h,AX=EF02h,AX=EF03h
  6132.  
  6133. Values in drive flag table:
  6134.  00h    drive is not mapped
  6135.  01h    permanent network drive
  6136.  02h    temporary network drive
  6137.  80h    mapped to local drive
  6138.  81h    local drive used as permanent network drive
  6139.  82h    local drive used as temporary network drive
  6140. --------N-21EF02-----------------------------
  6141. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE CONNECTION ID TABLE
  6142.     AX = EF02h
  6143. Return: ES:SI -> network shell's 32-byte drive conection ID table
  6144.     AX = 0000h
  6145. Notes:    this function is supported by Advanced NetWare 1.0+
  6146.     each byte in the connection ID table corresponds to a drive and
  6147.       contains either the connection ID (1-8) of the server for that drive
  6148.       or 00h if the drive is not mapped to a file server
  6149. SeeAlso: AX=EF01h,AX=EF03h,AX=F002h
  6150. --------N-21EF03-----------------------------
  6151. INT 21 - Novell NetWare - WORKSTATION - GET CONNECTION ID TABLE
  6152.     AX = EF03h
  6153. Return: ES:SI -> network shell's connection ID table (see below)
  6154.     AX = 0000h
  6155. Note:    this function is supported by Advanced NetWare 1.0+
  6156. SeeAlso: AX=EF00h,AX=EF02h,AX=EF04h,AX=F002h
  6157.  
  6158. Format of connection ID table [one entry of eight-element array]:
  6159. Offset    Size    Description
  6160.  00h    BYTE    in use flag
  6161.         E0h AES temporary
  6162.         F8h IPX in critical section
  6163.         FAh processing
  6164.         FBh holding
  6165.         FCh AES waiting
  6166.         FDh waiting
  6167.         FEh receiving
  6168.         FFh sending
  6169.  01h    BYTE    order number assigned to server (1-8)
  6170.  02h    DWORD    (big-endian) file server's network address
  6171.  06h  6 BYTEs    (big-endian) file server's node address
  6172.  0Ch    WORD    (big-endian) socket number
  6173.  0Eh    WORD    (big-endian) base receive timeout in clock ticks
  6174.  10h  6 BYTEs    (big-endian) preferred routing node
  6175.  16h    BYTE    packet sequence number
  6176.  17h    BYTE    connection number (FFh = no connection)
  6177.  18h    BYTE    connection status (00h if active)
  6178.  19h    WORD    (big-endian) maximum receive timeout in clock ticks
  6179.  1Bh  5 BYTEs    reserved
  6180. --------N-21EF04-----------------------------
  6181. INT 21 - Novell NetWare - WORKSTATION - GET FILE SERVER NAME TABLE
  6182.     AX = EF04h
  6183. Return: ES:SI -> network shell's file server name table (see below)
  6184.     AX = 0000h
  6185. Notes:    this function is supported by Advanced NetWare 1.0+
  6186.     the name table consists of eight 48-byte entries, each consisting of
  6187.       an ASCIZ server name for the corresponding entry in the connection
  6188.       ID table
  6189. SeeAlso: AX=EF03h
  6190. --------T-21F0-------------------------------
  6191. INT 21 - DoubleDOS - MENU CONTROL
  6192.     AH = F0h
  6193.     AL = subfunction
  6194.         01h exchange tasks
  6195.         73h resume invisible job if suspended
  6196.         74h kill other job
  6197.         75h suspend invisible job
  6198. Note:    identical to AH=E0h
  6199. SeeAlso: AH=E0h"DoubleDOS"
  6200. --------v-21F0-------------------------------
  6201. INT 21 - VIRUS - "Frere Jacques" - INSTALLATION CHECK
  6202.     AH = F0h
  6203. Return: AX = 0300h if resident
  6204. SeeAlso: AH=EEh"VIRUS",AH=F1h"VIRUS"
  6205. --------N-21F000-----------------------------
  6206. INT 21 - Novell NetWare - WORKSTATION - SET PREFERRED CONNECTION ID
  6207.     AX = F000h
  6208.     DL = connection ID of prefered file server (1-8) or 00h for none
  6209. Notes:    this function is supported by Advanced NetWare 1.0+
  6210.     the preferred connection ID is set to 00h by the shell on EOJ
  6211. SeeAlso: AH=D6h,AX=EF03h,AX=F001h,AX=F002h,AX=F005h
  6212. --------N-21F001-----------------------------
  6213. INT 21 - Novell NetWare - WORKSTATION - GET PREFERRED CONNECTION ID
  6214.     AX = F001h
  6215. Return: AL = connection ID of preferred file server (1-8), 00h if not set
  6216. Notes:    this function is supported by Advanced NetWare 1.0+
  6217.     the preferred connection ID is set to 00h by the shell on EOJ
  6218. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
  6219. --------N-21F002-----------------------------
  6220. INT 21 - Novell NetWare - WORKSTATION - GET DEFAULT CONNECTION ID
  6221.     AX = F002h
  6222. Return: AL = connection ID of current default file server (1-8) (see AX=EF03h)
  6223. Note:    this function is supported by Advanced NetWare 1.0+
  6224. SeeAlso: AX=EF03h,AX=F000h,AX=F004h
  6225. --------N-21F003-----------------------------
  6226. INT 21 - Novell NetWare - PRINT SERVICES - GET LPT CAPTURE STATUS
  6227.     AX = F003h
  6228. Return: AH = status
  6229.         00h not active
  6230.         FFh active
  6231.         AL = connection ID (01h-08h)
  6232. Note:    this function is supported by Advanced NetWare 1.0+
  6233. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h,AH=DFh/DL=04h
  6234. --------N-21F004-----------------------------
  6235. INT 21 - Novell NetWare - WORKSTATION - SET PRIMARY CONNECTION ID
  6236.     AX = F004h
  6237.     DL = connection ID of primary file server (1-8) or 00h for none
  6238. Note:    this function is supported by Advanced NetWare 2.0+
  6239. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
  6240. --------N-21F005-----------------------------
  6241. INT 21 - Novell NetWare - WORKSTATION - GET PRIMARY CONNECTION ID
  6242.     AX = F005h
  6243. Return: AL = connection ID of primary file server (1-8), 00h if not set
  6244. Notes:    this function is supported by Advanced NetWare 2.0+
  6245.     by default, the primary file server is the one from which the login
  6246.       script executed; it is set to 00h if the workstation is not logged in
  6247.       and when it detaches from its primary file server
  6248. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F004h
  6249. --------N-21F1-------------------------------
  6250. INT 21 - Novell NetWare - CONNECTION SERVICES - FILE SERVER CONNECTION
  6251.     AH = F1h
  6252.     AL = subfunction
  6253.         00h attach to file server
  6254.         DL = preferred file server (01h-08h)
  6255.         01h detach from file server
  6256.         DL = connection ID
  6257.         02h logout from file server
  6258.         DL = connection ID
  6259. Return: AL = status
  6260.         00h successful
  6261.         F8h already attached to server
  6262.         F9h connection table full
  6263.         FAh no more server slots
  6264.         FCh unknown file server
  6265.         FEh server bindery locked
  6266.         FFh no response from server, or connection does not exist
  6267. Note:    these functions are supported by Advanced NetWare 1.0+
  6268. SeeAlso: AH=D7h"NetWare",AH=E3h/SF=14h
  6269. --------T-21F1-------------------------------
  6270. INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
  6271.     AH = F1h
  6272. SeeAlso: AH=E1h"DoubleDOS",AH=F2h"DoubleDOS",AH=F3h"DoubleDOS"
  6273. SeeAlso: AH=F8h"DoubleDOS"
  6274. --------v-21F1-------------------------------
  6275. INT 21 - VIRUS - "F1-337" - ???
  6276.     AH = F1h
  6277.     ???
  6278. Return: ???
  6279. SeeAlso: AH=F0h"VIRUS",AX=F1E9h
  6280. --------v-21F1E9-----------------------------
  6281. INT 21 - VIRUS - "Tremor" - INSTALLATION CHECK
  6282.     AX = F1E9h
  6283. Return: AX = installation state
  6284.         CADEh installed, and calling program is infected
  6285.         F100h not installed (normal DOS return value)
  6286.         else  installed, but calling program is not infected
  6287. SeeAlso: AH=F1h"VIRUS",AX=F2AAh
  6288. --------N-21F2-------------------------------
  6289. INT 21 u - Novell NetWare v3.01+ shell interface - MULTIPLEXOR
  6290.     AH = F2h
  6291.     AL = function (see below)
  6292.     CX = length of request buffer in bytes
  6293.     DX = length of reply buffer in bytes
  6294.     DS:SI -> request buffer (contents vary by function)
  6295.     ES:DI -> reply buffer (contents vary by function)
  6296. Return: AL = status
  6297.     reply buffer filled as appropriate for function
  6298. Note:    this is a multiplexor providing a "raw" interface to the underlying
  6299.       NetWare Core Protocol.  Many functions which were accessed via a
  6300.       separate AH function in older versions can also be accessed here,
  6301.       but some NetWare 3.x calls appear to be available only here.
  6302. SeeAlso: AX=F244h
  6303.  
  6304. Values for NetWare Core Protocol functions:
  6305. Fnc/Subfn
  6306. 01h    File Set Lock
  6307. 02h    File Release Lock
  6308. 03h    Log File (see AH=EBh"NetWare")
  6309. 04h    Lock File Set (see AH=CBh"NetWare")
  6310. 05h    Release File (see AH=CCh,AH=ECh"NetWare")
  6311. 06h    Release File Set (see AH=CDh"NetWare")
  6312. 07h    Clear File (see AH=CEh,AH=EDh"NetWare")
  6313. 08h    Clear File Set (see AH=CFh"NetWare")
  6314. 09h    Log Logical Record (see AH=D0h"NetWare")
  6315. 0Ah    Lock Logical Record Set (see AH=D1h"NetWare")
  6316. 0Bh    Clear Logical Record (see AH=D4h"NetWare")
  6317. 0Ch    Release Logical Record (see AH=D2h"NetWare")
  6318. 0Dh    Release Logical Record Set (see AH=D3h"NetWare")
  6319. 0Eh    Clear Logical Record Set (see AH=D5h"NetWare")
  6320. 0Fh    Allocate Resource (see AH=D8h"NetWare")
  6321. 10h    Deallocate Resource (see AH=D9h"NetWare")
  6322. 11h/0Ah    Get Printer Queue
  6323. 11h/xxh    print spooling (see AX=E0xxh"NetWare")
  6324. 12h    Get Volume Info with Number (see AH=DAh"NetWare")
  6325. 13h    Get Station Number (see AH=DCh"NetWare")
  6326. 14h    Get File Server Date and Time (see AH=E7h"NetWare")
  6327. 15h/xxh    broadcast services (see AX=E1xxh"NetWare")
  6328. 16h/0Fh    Rename Directory
  6329. 16h/1Bh    Scan Salvagable Files
  6330. 16h/1Ch    Recover Salvagable File
  6331. 16h/1Dh    Purge Salvagable File
  6332. 16h/1Eh    Scan Dir Entry
  6333. 16h/1Fh    Get Dir ENtry
  6334. 16h/20h    Scan Volume for Restrictions
  6335. 16h/21h    Add User Disk Space Restriction (see AX=F216h/SF=21h)
  6336. 16h/22h    Clear Volume Restrictions
  6337. 16h/23h    Scan Dir Restrictions
  6338. 16h/24h    Set Directory Disk Space Restriction (see AX=F216h/SF=24h)
  6339. 16h/25h    Set Entry
  6340. 16h/26h    Scan File or Directory For Extended Trustees (see AX=F216h/SF=26h)
  6341. 16h/27h    Add Extended Trustee to Directory or File (see AX=F216h/SF=27h)
  6342. 16h/28h    Scan File Physical
  6343. 16h/29h    Get Object Disk Restrictions (see AX=F216h/SF=29h)
  6344. 16h/2Ah    Get Effective Rights
  6345. 16h/2Bh    Delete Trustee
  6346. 16h/2Ch    Get Volume Usage
  6347. 16h/2Dh    Get Dir Info
  6348. 16h/2Eh    Move Entry
  6349. 16h/2Fh    Fill Name Space Buffer
  6350. 16h/30h    Get Name Space Entry
  6351. 16h/31h    Open Data Stream
  6352. 16h/32h    Get Object Effective Rights
  6353. 16h/33h    Get Extended Volume Info
  6354. 16h/F3h    Map Directory Number to Path
  6355. 16h/xxh file/directory services (see AX=E2xxh"NetWare")
  6356. 17h/17h    Get Encryption Key
  6357. 17h/18h    Login Object Encrypted
  6358. 17h/1Ch    Get Connection Information (see AX=F217h/SF=1Ch)
  6359. 17h/1Fh    Get Connection List from Object
  6360. 17h/48h    Get Bindery Object Access Level
  6361. 17h/49h    Is Station a Manager?
  6362. 17h/4Ah    Verify Bindery Object Password Encrypted
  6363. 17h/4Bh    Change Bindery Object Password Encrypted
  6364. 17h/4Ch    Get Relation of an Object
  6365. 17h/D2h Clear Connection Number (Logout Station) (see AX=F217h/SF=D2h)
  6366. 17h/EBh    Get Connection's Open Files (see AX=F217h/SF=EBh)
  6367. 17h/ECh    Get Connections Using a File (see AX=F217h/SF=ECh)
  6368. 17h/EEh    Get Physical Record Locks by File (see AX=F217h/SF=EEh)
  6369. 17h/F2h Get Semaphore Information (see AX=F217h/SF=F2h)
  6370. 17h/F3h Map Directory Number to Path (see AX=F217h/SF=F3h)
  6371. 17h/F4h    Convert Path to Directory Entry (see AX=F217h/SF=F4h)
  6372. 17h/xxh    connection control (see AX=E3xxh"NetWare")
  6373. 18h    End of Job (see AH=D6h"NetWare")
  6374. 19h    Logout (see AH=D7h"NetWare")
  6375. 1Ah    Log Physical Record (see AH=BCh"NetWare")
  6376. 1Bh    Lock Physical Record Set (see AH=C2h"NetWare")
  6377. 1Ch    Release Physical Record (see AH=BDh"NetWare")
  6378. 1Dh    Release Physical Record Set (see AH=C3h"NetWare")
  6379. 1Eh    Clear Physical Record (see AH=BEh"NetWare")
  6380. 1Fh    Clear Physical Record Set (see AH=C4h"NetWare")
  6381. 20h/xxh    semaphore services (see AX=C5xxh"NetWare")
  6382. 21h    Negotiate Buffer
  6383. 22h/00h    TTS Is Available (see AX=C702h"NetWare")
  6384. 22h/01h    TTS Begin Transaction (see AX=C700h"NetWare")
  6385. 22h/02h    TTS End Transaction (see AX=C701h"NetWare")
  6386. 22h/03h    TTS Abort Transaction (see AX=C703h"NetWare")
  6387. 22h/04h    TTS Transaction Status (see AX=C704h"NetWare")
  6388. 22h/05h    TTS Get Application Thresholds (see AX=C705h"NetWare")
  6389. 22h/06h    TTS Set Application Thresholds (see AX=C706h"NetWare")
  6390. 22h/07h    TTS Get Workstation Thresholds (see AX=C707h"NetWare")
  6391. 22h/08h    TTS Set Workstation Thresholds (see AX=C708h"NetWare")
  6392. 22h/09h    TTS Get Control Flags
  6393. 22h/0Ah    TTS Set Control Flags
  6394. 23h/01h    AFP Create Directory
  6395. 23h/02h    AFP Create File
  6396. 23h/03h    AFP Delete
  6397. 23h/04h    AFP Get Entry ID From Name
  6398. 23h/05h    AFP Get FIle Infomration
  6399. 23h/06h    AFP Get Entry ID From NetWare Handle
  6400. 23h/07h    AFP Rename
  6401. 23h/08h    AFP Open File Fork
  6402. 23h/09h    AFP Set File Information
  6403. 23h/0Ah    AFP Scan File Information
  6404. 23h/0Bh    AFP Alloc Temporary Dir Handle
  6405. 23h/0Ch    AFP Get Entry ID From Path Name
  6406. 3Dh    Commit File
  6407. 3Eh    File Search Initialize (FindFirst)
  6408. 3Fh    File Search Continue (FindNext)
  6409. 40h    Search File
  6410. 42h    File Close
  6411. 43h    File Create
  6412. 44h    Erase Files
  6413. 45h    File Rename
  6414. 46h    Set File Attributes
  6415. 47h    Get File Size
  6416. 48h    File Read
  6417. 49h    File Write
  6418. 4Ah    File Server Copy (see AH=F3h"NetWare")
  6419. 4Bh    Set File Time and Date
  6420. 4Ch    File Open
  6421. 4Dh    Create New File
  6422. 4Eh    Allow Task Access to File
  6423. 4Fh    Set Extended File Attributes (see AH=B6h"NetWare")
  6424. 55h    Get File Bit Map
  6425. 57h/03h    Scan NS Entry Info
  6426. 57h/06h    Get NS Entry Info (see AX=F257h/SF=06h)
  6427. 57h/07h    Set NS Entry DOS Info
  6428. 57h/0Ch    Allocate Temp NS Dir Handle
  6429. 57h/13h    Read NS Info
  6430. 57h/16h    Get Directory Base
  6431. 57h/17h    Get NS Info
  6432. 57h/19h    Write NS Info
  6433. 57h/1Ah    Read Extended NS Info
  6434. 57h/1Bh    Write Extended NS Infor
  6435. 57h/1Ch    Get NS Path
  6436. 58h/01h    Get Volume Audit Statistics
  6437. 58h/02h    Add Audit Property
  6438. 58h/03h    Login as Volume Auditor
  6439. 58h/04h Change Auditor Password
  6440. 58h/05h Check Audit Access
  6441. 58h/06h    Remove Audit Property
  6442. 58h/07h    Disable Auditing on Volume
  6443. 58h/08h    Enable Auditing on Volume
  6444. 58h/09h    Is User Audited?
  6445. 58h/0Ah    Read Auditing Bit Map
  6446. 58h/0Bh    Read Audit Config Header
  6447. 58h/0Dh    Logout as Volume Auditor
  6448. 58h/0Eh    Reset Auditing File
  6449. 58h/0Fh    Reset Audit History File
  6450. 58h/10h    Write Auditing Bit Map
  6451. 58h/11h    Write Audit Config Header
  6452. 58h/13h    Get Auditing Flags
  6453. 58h/14h    Close Old Auditing File
  6454. 58h/15h    Delete Old Auditing File
  6455. 58h/16h    Check Audit Level Two Access
  6456. 5Ah/01h    Get DM Info
  6457. 61h    Negotiate LIP Buffer
  6458. 65h    Packet Burst Connection
  6459. 7Bh/01h    Get Cache Information
  6460. 7Bh/02h    Get File Server Information
  6461. 7Bh/03h    Get NetWare File Systems Information
  6462. 7Bh/04h    Get User Information
  6463. 7Bh/05h    Get Packet Burst Information
  6464. 7Bh/06h    Get IPX/SPX Information
  6465. 7Bh/07h    Get Garbage Collection Information
  6466. 7Bh/08h    Get CPU Information
  6467. 7Bh/09h    Get Volume Switch Information
  6468. 7Bh/0Ah    Get NLM Loaded List
  6469. 7Bh/0Bh    Get NLM Information
  6470. 7Bh/0Ch    Get Directory Cache Information
  6471. 7Bh/0Dh    Get OS Version Information
  6472. 7Bh/0Eh    Get Active Connection List by Type
  6473. 7Bh/0Fh    Get NLM's Resource Tag List
  6474. 7Bh/14h    Get Active LAN Board List
  6475. 7Bh/15h    Get LAN Configuration Information
  6476. 7Bh/16h    Get LAN Common Counters Information
  6477. 7Bh/17h    Get LAN Custom Counters Information
  6478. 7Bh/18h    Get LAN Config Strings
  6479. 7Bh/19h    Get LSL Informatino
  6480. 7Bh/1Ah    Get LSL Logical Board Statistics
  6481. 7Bh/1Eh    Get Media Manager Object Information
  6482. 7Bh/1Fh    Get Media Manager Object List
  6483. 7Bh/20h    Get Media Manager Object Children List
  6484. 7Bh/21h    Get Volume Segment List
  6485. 7Bh/28h    Get Active Protocol Stacks
  6486. 7Bh/29h    Get Protocol Stack Configuration Information
  6487. 7Bh/2Ah    Get Protocol Stack Statistics Information
  6488. 7Bh/2Bh    Get Protocol Stack Custom Information
  6489. 7Bh/2Ch    Get Protocol Stack Numbers By Media Number
  6490. 7Bh/2Dh    Get Protocol Stack Numbers By LAN Board Number
  6491. 7Bh/2Eh    Get Media Name by Media Number
  6492. 7Bh/2Fh    Get Loaded Media Number List
  6493. 7Bh/32h    Get General Router and SAP Information
  6494. 7Bh/33h    Get Network Router Information
  6495. 7Bh/34h    Get Network Routers Information
  6496. 7Bh/35h    Get Known Networks Information
  6497. 7Bh/36h    Get Server Information
  6498. 7Bh/38h    Get Known Servers Information
  6499. 7Bh/3Ch    Get Server Set Commands Information
  6500. 7Bh/3Dh    Get Server Set Categories
  6501. --------T-21F2-------------------------------
  6502. INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
  6503.     AH = F2h
  6504.     AL = character
  6505. Return: AL = 00h successful
  6506.          01h buffer full (128 characters)
  6507. SeeAlso: AH=E2h"DoubleDOS",AH=F1h"DoubleDOS",AH=F3h"DoubleDOS"
  6508. SeeAlso: AH=F8h"DoubleDOS"
  6509. --------N-21F216SF21-------------------------
  6510. INT 21 - Novell NetWare v3+ - ADD USER DISK SPACE RESTRICTION
  6511.     AX = F216h subfn 21h
  6512.     CX = length of request buffer in bytes
  6513.     DX = length of reply buffer in bytes
  6514.     DS:SI -> request buffer (see below)
  6515.     ES:DI -> reply buffer (ignored)
  6516. Return: AL = status
  6517. SeeAlso: AX=F216h/SF=24h
  6518.  
  6519. Format of request buffer:
  6520. Offset    Size    Description
  6521.  00h    WORD    000Ah (length of following data)
  6522.  02h    BYTE    21h (subfunction "Add User Disk Space Restriction")
  6523.  03h    BYTE    volume number
  6524.  04h    DWORD    (big-endian) object ID
  6525.  08h    DWORD    (big-endian) disk space limit in 4K blocks
  6526.         00000000h to 40000000h
  6527. --------N-21F216SF24-------------------------
  6528. INT 21 - Novell NetWare v3+ - SET DIRECTORY DISK SPACE RESTRICTION
  6529.     AX = F216h subfn 24h
  6530.     CX = length of request buffer in bytes
  6531.     DX = length of reply buffer in bytes
  6532.     DS:SI -> request buffer (see below)
  6533.     ES:DI -> reply buffer (ignored)
  6534. Return: AL = status
  6535. SeeAlso: AX=F216h/SF=21h
  6536.  
  6537. Format of request buffer:
  6538. Offset    Size    Description
  6539.  00h    WORD    0006h (length of following data)
  6540.  02h    BYTE    24h (subfunction "Set Directory Disk Space Restriction")
  6541.  03h    BYTE    directory handle
  6542.  04h    DWORD    (big-endian) disk space limit in 4K blocks
  6543.         00000000h to remove restriction, negative to set to 0 blocks
  6544. --------N-21F216SF26-------------------------
  6545. INT 21 - Novell NetWare v3+ - SCAN FILE OR DIRECTORY FOR EXTENDED TRUSTEES
  6546.     AX = F216h subfn 26h
  6547.     CX = length of request buffer in bytes
  6548.     DX = length of reply buffer in bytes
  6549.     DS:SI -> request buffer (see below)
  6550.     ES:DI -> reply buffer (see below)
  6551. Return: AL = status
  6552. Desc:    get up to 20 extended trustee entries per call for a file or directory
  6553.  
  6554. Format of request buffer:
  6555. Offset    Size    Description
  6556.  00h    WORD    length of following data
  6557.  02h    BYTE    26h (subfunc "Scan File or Directory For Extended Trustees")
  6558.  03h    BYTE    directory handle
  6559.  04h    BYTE    sequence number
  6560.         00h for first call, increment by number of returned entries
  6561.  05h    BYTE    length of path
  6562.  06h  N BYTEs    pathname
  6563.  
  6564. Format of reply buffer:
  6565. Offset    Size    Description
  6566.  00h    BYTE    number of entries returned (max 20)
  6567.  01h 20 DWORDs    (big-endian) list of object IDs
  6568.  51h 20 WORDs    list of associated trustee rights
  6569. --------N-21F216SF27-------------------------
  6570. INT 21 - Novell NetWare v3+ - ADD EXTENDED TRUSTEE TO DIRECTORY OR FILE
  6571.     AX = F216h subfn 27h
  6572.     CX = length of request buffer in bytes
  6573.     DX = length of reply buffer in bytes
  6574.     DS:SI -> request buffer (see below)
  6575.     ES:DI -> reply buffer (ignored)
  6576. Return: AL = status
  6577.  
  6578. Format of request buffer:
  6579. Offset    Size    Description
  6580.  00h    WORD    length of following data
  6581.  02h    BYTE    27h (subfunction "Add Extended Trustee to Directory or File")
  6582.  03h    BYTE    directory handle
  6583.  04h    DWORD    (big-endian) object ID
  6584.  08h    WORD    trustee rights (see below)
  6585.  0Ah    BYTE    path length
  6586.  0Bh  N BYTEs    path name
  6587.  
  6588. Bitfields for trustee rights:
  6589.  bit 0:    read
  6590.  bit 1: write
  6591.  bit 3: create
  6592.  bit 4: delete
  6593.  bit 5: access
  6594.  bit 6: file
  6595.  bit 7: modify
  6596.  bit 8: supervisor
  6597. --------N-21F216SF29-------------------------
  6598. INT 21 - Novell NetWare v3+ - GET OBJECT DISK RESTRICTIONS
  6599.     AX = F216h subfn 29h
  6600.     CX = length of request buffer in bytes
  6601.     DX = length of reply buffer in bytes
  6602.     DS:SI -> request buffer (see below)
  6603.     ES:DI -> reply buffer (see below)
  6604. Return: AL = status
  6605.     reply buffer filled
  6606. Note:    this function returns successfully, showing no restriction, if an
  6607.       invalid object ID is specified
  6608. SeeAlso: AX=F216h/SF=24h
  6609.  
  6610. Format of request buffer:
  6611. Offset    Size    Description
  6612.  00h    WORD    0006h (length of following data)
  6613.  02h    BYTE    21h (subfunction "Get Object Disk Restrictions")
  6614.  03h    BYTE    volume number
  6615.  04h    DWORD    (big-endian) object ID
  6616.  
  6617. Format of reply buffer:
  6618. Offset    Size    Description
  6619.  00h    DWORD    disk space limit
  6620.  04h    DWORD    disk space currently in use by object
  6621. --------N-21F217SF1C-------------------------
  6622. INT 21 - Novell NetWare v3+ - GET CONNECTION INFORMATION
  6623.     AX = F217h subfn 1Ch
  6624.     CX = length of request buffer in bytes
  6625.     DX = length of reply buffer in bytes
  6626.     DS:SI -> request buffer (see below)
  6627.     ES:DI -> reply buffer (see below)
  6628. Return: AL = status
  6629.     reply buffer filled
  6630.  
  6631. Format of request buffer:
  6632. Offset    Size    Description
  6633.  00h    WORD    0005h (length of following data)
  6634.  02h    BYTE    1Ch (subfunction "Get Connection Information")
  6635.  03h    DWORD    target connection number
  6636. Note:    connection numbers greater than the maximum supported by the server
  6637.       can cause ABENDs
  6638.  
  6639. Format of reply buffer:
  6640. Offset    Size    Description
  6641.  00h    DWORD    (big-endian) unique user ID, 00000000h if no one logged in
  6642.  04h    WORD    (big-endian) user type
  6643.  06h 48 BYTEs    user name
  6644.  36h  7 BYTEs    login time (see below)
  6645.  3Dh    BYTE    reserved
  6646. --------N-21F217SFD2-------------------------
  6647. INT 21 - Novell NetWare v3+ - CLEAR CONNECTION NUMBER (LOGOUT STATION)
  6648.     AX = F217h subfn D2h
  6649.     CX = length of request buffer in bytes
  6650.     DX = length of reply buffer in bytes
  6651.     DS:SI -> request buffer (see below)
  6652.     ES:DI -> reply buffer (ignored)
  6653. Return: AL = status
  6654.     reply buffer filled
  6655.  
  6656. Format of request buffer:
  6657. Offset    Size    Description
  6658.  00h    WORD    0002h (length of following data)
  6659.  02h    BYTE    D2h (subfunction "Clear Connection Number")
  6660.  03h    BYTE    connection number
  6661. --------N-21F217SFEB-------------------------
  6662. INT 21 - Novell NetWare v3+ - GET CONNECTION'S OPEN FILES
  6663.     AX = F217h subfn EBh
  6664.     CX = length of request buffer in bytes
  6665.     DX = length of reply buffer in bytes
  6666.     DS:SI -> request buffer (see below)
  6667.     ES:DI -> reply buffer (see below)
  6668. Return: AL = status
  6669.     reply buffer filled
  6670.  
  6671. Format of request buffer:
  6672. Offset    Size    Description
  6673.  00h    WORD    0005h (length of following data)
  6674.  02h    BYTE    EBh (subfunction "Get Connection's Open Files")
  6675.  03h    WORD    target connection number
  6676.  05h    WORD    last record seen (set to 0000h for first call)
  6677. Note:    connection numbers greater than the maximum supported by the server
  6678.       can cause ABENDs
  6679.  
  6680. Format of reply buffer:
  6681. Offset    Size    Description
  6682.  00h    WORD    next request record
  6683.  02h    WORD    number of records returned (max 28)
  6684.  04h 29N BYTEs    records
  6685.         Offset    Size    Description
  6686.          00h    WORD    task number
  6687.          02h    BYTE    lock type
  6688.          03h    BYTE    access control
  6689.          04h    BYTE    lock flag
  6690.          05h    BYTE    volume number
  6691.          06h    DWORD    parent directory entry number
  6692.          0Ah    DWORD    directory entry number
  6693.          0Eh    BYTE    reserved
  6694.          0Fh    BYTE    data stream type
  6695.          10h    BYTE    file name length
  6696.          11h 12 BYTEs    file name
  6697. --------N-21F217SFEC-------------------------
  6698. INT 21 - Novell NetWare v3+ - GET CONNECTIONS USING A FILE
  6699.     AX = F217h subfn ECh
  6700.     CX = length of request buffer in bytes
  6701.     DX = length of reply buffer in bytes
  6702.     DS:SI -> request buffer (see below)
  6703.     ES:DI -> reply buffer (see below)
  6704. Return: AL = status
  6705.     reply buffer filled
  6706.  
  6707. Format of request buffer:
  6708. Offset    Size    Description
  6709.  00h    WORD    0009h (length of following data)
  6710.  02h    BYTE    ECh (subfunction "Get Connections Using a File")
  6711.  03h    BYTE    data stream type
  6712.  04h    BYTE    volume number
  6713.  05h    DWORD    directory entry number
  6714.  09h    WORD    last record seen (0000h for first call)
  6715.  
  6716. Format of reply buffer:
  6717. Offset    Size    Description
  6718.  00h    WORD    next request record
  6719.  02h    WORD    use count
  6720.  04h    WORD    open count
  6721.  06h    WORD    number of times open for reading
  6722.  08h    WORD    number of times open for writing
  6723.  0Ah    WORD    Deny Read count
  6724.  0Ch    WORD    Deny Write count
  6725.  0Eh    BYTE    flag: locked
  6726.  0Fh    BYTE    data stream type
  6727.  10h    WORD    number of records returned (max 70)
  6728.  12h 7N BYTEs    returned records
  6729.         Offset    Size    Description
  6730.          00h    WORD    connection number
  6731.          02h    WORD    task number
  6732.          04h    BYTE    lock type
  6733.          05h    BYTE    access flag
  6734.          06h    BYTE    lock flag
  6735. --------N-21F217SFEE-------------------------
  6736. INT 21 - Novell NetWare v3+ - GET PHYSICAL RECORD LOCKS BY FILE
  6737.     AX = F217h subfn EEh
  6738.     CX = length of request buffer in bytes
  6739.     DX = length of reply buffer in bytes
  6740.     DS:SI -> request buffer (see below)
  6741.     ES:DI -> reply buffer (see below)
  6742. Return: AL = status
  6743.     reply buffer filled
  6744.  
  6745. Format of request buffer:
  6746. Offset    Size    Description
  6747.  00h    WORD    0009h (length of following data)
  6748.  02h    BYTE    EEh (subfunction "Get Physical Record Locks by File")
  6749.  03h    BYTE    data stream number
  6750.  04h    BYTE    volume number
  6751.  05h    DWORD    directory entry number
  6752.  09h    WORD    last record seen (0000h for first call)
  6753.  
  6754. Format of reply buffer:
  6755. Offset    Size    Description
  6756.  00h    WORD    next request record
  6757.  02h    WORD    number of locks
  6758.  04h 17N BYTEs    lock records, one per lock
  6759.         Offset    Size    Description
  6760.          00h    WORD    logged count
  6761.          02h    WORD    number of shareable locks
  6762.          04h    DWORD    start offset of record
  6763.          08h    DWORD    end offset of record
  6764.          0Ch    WORD    logical connection number
  6765.          0Eh    WORD    task number
  6766.          10h    BYTE    lock type
  6767. --------N-21F217SFF2-------------------------
  6768. INT 21 - Novell NetWare v3+ - GET SEMAPHORE INFORMATION
  6769.     AX = F217h subfn F2h
  6770.     CX = length of request buffer in bytes
  6771.     DX = length of reply buffer in bytes
  6772.     DS:SI -> request buffer (see below)
  6773.     ES:DI -> reply buffer (see below)
  6774. Return: AL = status
  6775.     reply buffer filled
  6776.  
  6777. Format of request buffer:
  6778. Offset    Size    Description
  6779.  00h    WORD    length of following data (max 84h)
  6780.  02h    BYTE    F2h (subfunction "Get Semaphore Information")
  6781.  03h    WORD    last record seen (0000h on first call)
  6782.  05h    BYTE    length of semaphore name (max 128)
  6783.  06h  N BYTEs    semaphore name
  6784.  
  6785. Format of reply buffer:
  6786. Offset    Size    Description
  6787.  00h    WORD    next request record
  6788.  02h    WORD    open count
  6789.  04h    BYTE    value of semaphore
  6790.  05h    WORD    number of records returned
  6791.  07h 2N WORDs    list of logical connection number/task number pairs
  6792. --------N-21F217SFF3-------------------------
  6793. INT 21 - Novell NetWare v3+ - MAP DIRECTORY NUMBER TO PATH
  6794.     AX = F217h subfn F3h
  6795.     CX = length of request buffer in bytes
  6796.     DX = length of reply buffer in bytes
  6797.     DS:SI -> request buffer (see below)
  6798.     ES:DI -> reply buffer (see below)
  6799. Return: AL = status
  6800.     reply buffer filled
  6801. SeeAlso: AX=F217h/SF=F4h
  6802.  
  6803. Format of request buffer:
  6804. Offset    Size    Description
  6805.  00h    WORD    0007h (length of following data)
  6806.  02h    BYTE    F3h (subfunction "Map Directory Number to Path")
  6807.  03h    BYTE    volume number
  6808.  04h    DWORD    directory entry number
  6809.  08h    BYTE    name space type
  6810.  
  6811. Format of reply buffer:
  6812. Offset    Size    Description
  6813.  00h    BYTE    directory path length
  6814.  01h  N BYTEs    directory path (NetWare style, separated by length descriptors
  6815.         rather than slashes or backslashes)
  6816. --------N-21F217SFF4-------------------------
  6817. INT 21 - Novell NetWare v3+ - CONVERT PATH TO DIRECTORY ENTRY
  6818.     AX = F217h subfn F4h
  6819.     CX = length of request buffer in bytes
  6820.     DX = length of reply buffer in bytes
  6821.     DS:SI -> request buffer (see below)
  6822.     ES:DI -> reply buffer (see below)
  6823. Return: AL = status
  6824.     reply buffer filled
  6825. SeeAlso: AX=F217h/SF=F3h
  6826.  
  6827. Format of request buffer:
  6828. Offset    Size    Description
  6829.  00h    WORD    length of following data
  6830.  02h    BYTE    F4h (subfunction "Convert Path to Directory Entry")
  6831.  03h    BYTE    directory handle or 00h for none
  6832.  04h    BYTE    length of directory path
  6833.  05h  N BYTEs    directory path (must be fully qualified if no handle specified)
  6834.  
  6835. Format of reply buffer:
  6836. Offset    Size    Description
  6837.  00h    BYTE    (return) volume number
  6838.  01h    DWORD    (return) directory entry number
  6839. --------N-21F244-----------------------------
  6840. INT 21 - Novell NetWare - FILE SERVICES - ERASE FILES
  6841.     AX = F244h
  6842.     DS:SI -> request buffer (see below)
  6843.     ES:DI -> reply buffer (ignored???)
  6844. Return: AL = status
  6845.         00h successful
  6846.         98h nonexistent volume
  6847.         9Bh invaid directory handle
  6848.         9Ch invalid path
  6849.         FFh no files found
  6850. Note:    this function only marks the file for deletion; use AH=E2h/SF=CEh to
  6851.       actually delete all marked files
  6852. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=0Bh,AH=E3h/SF=CEh
  6853.  
  6854. Format of request buffer:
  6855. Offset    Size    Description
  6856.  00h    BYTE    directory handle
  6857.  01h    BYTE    search attributes (see AX=4301h)
  6858.  02h    BYTE    length of filespec
  6859.  03h  N BYTEs    ASCIZ filespec (may include wildcards)
  6860. --------N-21F257SF06-------------------------
  6861. INT 21 - Novell NetWare v3+ - GET NAME SPACE INFORMATION FOR FILE OR DIRECTORY
  6862.     AX = F257h subfn 06h
  6863.     CX = length of request buffer in bytes
  6864.     DX = length of reply buffer in bytes
  6865.     DS:SI -> request buffer (see below)
  6866.     ES:DI -> reply buffer (see below)
  6867. Return: AL = status
  6868.     reply buffer filled
  6869.  
  6870. Format of request buffer:
  6871. Offset    Size    Description
  6872.  00h    BYTE    06h (subfunction "Get NS Entry Info")
  6873.  01h    BYTE    name space
  6874.  02h    BYTE    destination name space
  6875.  03h    WORD    search attributes
  6876.  05h    DWORD    return information mask (should be 00000200h)
  6877.  09h    BYTE    volume number
  6878.  0Ah    DWORD    directory handle
  6879.  0Eh    BYTE    handle flag (should be FFh)
  6880.  0Fh    BYTE    number of path components
  6881.  10h  N BYTEs    list of path components (each a counted string)
  6882.  
  6883. Format of reply buffer:
  6884. Offset    Size    Description
  6885.  00h 72 BYTEs    reserved
  6886.  48h    DWORD    creator's name space number
  6887.  4Ch 257 BYTEs    reserved
  6888. --------v-21F2AA-----------------------------
  6889. INT 21 - VIRUS - "PcVrsDs" - INSTALLATION CHECK
  6890.     AX = F2AAh
  6891. Return: AH = AAh if resident
  6892. SeeAlso: AH=F1h"VIRUS",AH=F3h"VIRUS"
  6893. --------N-21F3-------------------------------
  6894. INT 21 - Novell NetWare - FILE SERVICES - FILE SERVER FILE COPY
  6895.     AH = F3h
  6896.     ES:DI -> request buffer (see below)
  6897. Return: AL = status/error code
  6898.     CX:DX = number of bytes copied
  6899. Notes:    this function is supported by Advanced NetWare 2.0+
  6900.     both source and destination must be on the same file server
  6901. SeeAlso: AH=3Ch,AH=3Fh
  6902.  
  6903. Format of request buffer:
  6904. Offset    Size    Description
  6905.  00h    WORD    source file handle (as returned by AH=3Ch or AH=3Dh)
  6906.  02h    WORD    destination file handle
  6907.  04h    DWORD    starting offset in source
  6908.  08h    DWORD    starting offset in destination
  6909.  0Ch    DWORD    number of bytes to copy
  6910. --------T-21F3-------------------------------
  6911. INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
  6912.     AH = F3h
  6913.     AL = character
  6914. Return: AL = 00h successful
  6915.          01h buffer full (128 characters)
  6916. SeeAlso: AH=E3h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS"
  6917. SeeAlso: AH=F8h"DoubleDOS"
  6918. --------v-21F3-------------------------------
  6919. INT 21 - VIRUS - "Carfield" - INSTALLATION CHECK
  6920.     AH = F3h
  6921. Return: AX = 0400h if resident
  6922. SeeAlso: AH=D5h"Carfield",AX=F2AAh,AH=F7h"VIRUS"
  6923. --------T-21F400-----------------------------
  6924. INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
  6925.     AX = F400h
  6926. Return: AL = 00h if DoubleDOS not present
  6927.        = 01h if running in visible DoubleDOS partition
  6928.        = 02h if running in the invisible DoubleDOS partition
  6929. SeeAlso: AX=E400h,AH=F5h"DoubleDOS"
  6930. --------T-21F5-------------------------------
  6931. INT 21 - DoubleDOS - OTHER PROGRAM STATUS
  6932.     AH = F5h
  6933. Return: AL = 00h no program in other partition
  6934.        = 01h program in other partition is running
  6935.        = 02h program in other partition is suspended
  6936. SeeAlso: AH=E5h"DoubleDOS",AX=F400h"DoubleDOS"
  6937. --------v-21F7-------------------------------
  6938. INT 21 - VIRUS - "GP1" - INSTALLATION CHECK
  6939.     AH = F7h
  6940. Return: AX = 0300h if resident
  6941. SeeAlso: AH=F0h"VIRUS",AH=FBh"VIRUS"
  6942. --------D-21F8-------------------------------
  6943. INT 21 - DOS v2.11 - SET OEM INT 21 HANDLER
  6944.     AH = F8h
  6945.     DS:DX -> OEM INT 21 handler for functions F9h to FFh
  6946.          FFFFh:FFFFh disables OEM handler
  6947. Notes:    this function is supported by Toshiba T1000 ROM MS-DOS 2.11
  6948.     calls to AH=F9h through AH=FFH will return AL=00h if no handler set
  6949.     handler is called with all registers exactly as set by caller, and
  6950.       should exit with IRET
  6951. SeeAlso: AH=F9h"OEM"
  6952. --------T-21F8-------------------------------
  6953. INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
  6954.     AH = F8h
  6955.     AL = 00h set flags for this program
  6956.        = 01h set flags for other program
  6957.     DX = keyboard control flags (see AH=E8h"DoubleDOS")
  6958. Return: DX = previous flags
  6959. Notes:    disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  6960.       disabling any of the other keystrokes disables them completely
  6961.     this function is identical to AH=E8h
  6962. SeeAlso: AH=E8h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS"
  6963. SeeAlso: AH=F3h"DoubleDOS"
  6964. --------D-21F9-------------------------------
  6965. INT 21 - DOS v2.11 - OEM FUNCTION
  6966.     AH = F9h
  6967. SeeAlso: AH=F8h"OEM",AH=FAh"OEM"
  6968. --------T-21F9-------------------------------
  6969. INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
  6970.     AH = F9h
  6971.     AL = 00h visible program gets 70%, invisible gets 30% (default)
  6972.        = 01h visible program gets 50%, invisible gets 50%
  6973.        = 02h visible program gets 30%, invisible gets 70%
  6974.        = 03h Top program gets 70%, bottom program gets 30%
  6975.        = 04h Top program gets 30%, bottom program gets 70%
  6976.        = 05h get current priority
  6977.         Return: AL = priority setting
  6978. Note:    identical to AH=E9h
  6979. SeeAlso: AH=E9h"DoubleDOS",AH=FAh"DoubleDOS",AH=FBh"DoubleDOS"
  6980. --------D-21FA-------------------------------
  6981. INT 21 - DOS v2.11 - OEM FUNCTION
  6982.     AH = FAh
  6983. SeeAlso: AH=F8h"OEM",AH=F9h"OEM",AH=FBh"OEM"
  6984. --------T-21FA-------------------------------
  6985. INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
  6986.     AH = FAh
  6987. Return: task switching turned off
  6988. SeeAlso: AH=EAh"DoubleDOS",AH=F9h"DoubleDOS",AH=FBh"DoubleDOS"
  6989. SeeAlso: INT FA"DoubleDOS"
  6990. --------v-21FA--DX5945-----------------------
  6991. INT 21 U - PC Tools v7+ VDEFEND, VSAFE, VWATCH - API
  6992.     AH = FAh
  6993.     DX = 5945h
  6994.     AL = function (00h-02h for VDEFEND, 00h-07h for VSAFE and VWATCH)
  6995. Return: varies by function
  6996. Note:    this API is identical to the API on INT 13/AH=FAh and INT 16/AH=FAh,
  6997.       so it is listed in its entirety only under INT 16/AX=FA00h and
  6998.       following
  6999. SeeAlso: INT 13/AX=FA00h,INT 16/AX=FA00h
  7000. --------D-21FB-------------------------------
  7001. INT 21 - DOS v2.11 - OEM FUNCTION
  7002.     AH = FBh
  7003. SeeAlso: AH=F8h"OEM",AH=FAh"OEM",AH=FCh"OEM"
  7004. --------T-21FB-------------------------------
  7005. INT 21 - DoubleDOS - TURN ON TASK SWITCHING
  7006.     AH = FBh
  7007. Return: task switching turned on
  7008. SeeAlso: AH=EBh"DoubleDOS",AH=F9h"DoubleDOS",AH=FAh"DoubleDOS"
  7009. SeeAlso: INT FB"DoubleDOS"
  7010. --------v-21FB-------------------------------
  7011. INT 21 - VIRUS - "Cinderella" - INSTALLATION CHECK
  7012.     AH = FBh
  7013. Return: AH = 00h if resident
  7014. SeeAlso: AH=F7h"VIRUS",AX=FB0Ah
  7015. --------v-21FB0A-----------------------------
  7016. INT 21 - VIRUS - "dBASE" - INSTALLATION CHECK
  7017.     AX = FB0Ah
  7018. Return: AX = 0AFBh if resident
  7019. SeeAlso: AH=FBh"VIRUS",AH=FCh"VIRUS"
  7020. --------D-21FC-------------------------------
  7021. INT 21 - DOS v2.11 - OEM FUNCTION
  7022.     AH = FCh
  7023. SeeAlso: AH=F8h"OEM",AH=FBh"OEM",AH=FDh"OEM"
  7024. --------T-21FC-------------------------------
  7025. INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
  7026.     AH = FCh
  7027. Return: ES = segment of virtual screen
  7028. Desc:    Determine the address of the virtual screen to which the program
  7029.       should write instead of the actual video memory, so that the
  7030.       multitasked programs do not interfere with each other's output.
  7031. Notes:    screen address can change if task-switching is on!!
  7032.     identical to AH=ECh
  7033. SeeAlso: AH=ECh"DoubleDOS",INT FC"DoubleDOS"
  7034. --------v-21FC-------------------------------
  7035. INT 21 - VIRUS - "Troi" - INSTALLATION CHECK
  7036.     AH = FCh
  7037. Return: AL = A5h if resident
  7038. SeeAlso: AX=FB0Ah"VIRUS",AH=FDh"VIRUS"
  7039. --------D-21FD-------------------------------
  7040. INT 21 - DOS v2.11 - OEM FUNCTION
  7041.     AH = FDh
  7042. SeeAlso: AH=F8h"OEM",AH=FCh"OEM",AH=FEh"DOS"
  7043. --------v-21FD-------------------------------
  7044. INT 21 - VIRUS - "Border" - INSTALLATION CHECK
  7045.     AH = FDh
  7046. Return: AH = 13h if resident
  7047. SeeAlso: AH=FCh"VIRUS",AH=FEh"VIRUS"
  7048. --------D-21FE-------------------------------
  7049. INT 21 - DOS v2.11 - OEM FUNCTION
  7050.     AH = FEh
  7051. SeeAlso: AH=F8h"OEM",AH=FDh"OEM",AH=FFh"OEM"
  7052. --------T-21FE-------------------------------
  7053. INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
  7054.     AH = FEh
  7055.     AL = number of 55ms time slices to give away
  7056. Return: returns after giving away time slices
  7057. SeeAlso: AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  7058. --------v-21FE-------------------------------
  7059. INT 21 - VIRUS - "483" - INSTALLATION CHECK
  7060.     AH = FEh
  7061. Return: AH = 00h if resident
  7062. SeeAlso: AH=FDh"VIRUS",AX=FE01h
  7063. --------v-21FE01-----------------------------
  7064. INT 21 - VIRUS - "Flip" - INSTALLATION CHECK
  7065.     AX = FE01h
  7066. Return: AX = 01FEh if resident
  7067. SeeAlso: AH=FEh"VIRUS",AX=FE02h
  7068. --------v-21FE02-----------------------------
  7069. INT 21 - VIRUS - "2468"/"Tequila" - INSTALLATION CHECK
  7070.     AX = FE02h
  7071. Return: AX = 01FDh if resident
  7072. SeeAlso: AX=FE01h,AX=FE03h,AX=FEDCh"VIRUS"
  7073. --------v-21FE03-----------------------------
  7074. INT 21 - VIRUS - "2468"/"Tequila" - DISPLAY VIRUS MESSAGE
  7075.     AX = FE03h
  7076. SeeAlso: AX=FE02h
  7077. --------d-21FEDC-----------------------------
  7078. INT 21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK
  7079.     AX = FEDCh
  7080. Return: AX = CDEFh if installed
  7081. Program: the PCMANAGE/DCOMPRES combination from PC Magazine permits
  7082.       infrequently-used files to be compressed to save space and
  7083.       transparently expanded when accessed
  7084. SeeAlso: AH=DCh,INT 2D/AL=10h"dLite"
  7085. --------v-21FEDC-----------------------------
  7086. INT 21 - VIRUS - "Black Monday" - INSTALLATION CHECK
  7087.     AX = FEDCh
  7088. Return: AL = DCh if resident
  7089. SeeAlso: AX=FE02h,AH=FFh"VIRUS"
  7090. --------D-21FF-------------------------------
  7091. INT 21 - DOS v2.11 - OEM FUNCTION
  7092.     AH = FFh
  7093. SeeAlso: AH=F8h"OEM",AH=FEh"OEM"
  7094. --------K-21FF-------------------------------
  7095. INT 21 - CED (Command EDitor) - INSTALLABLE COMMANDS
  7096.     AH = FFh
  7097.     AL = subfunction
  7098.         00h add installable command
  7099.            BL = mode - bit 0 = 1 callable from DOS prompt
  7100.                bit 1 = 1 callable from application
  7101.            DS:SI -> CR-terminated command name
  7102.            ES:DI -> FAR routine entry point
  7103.         01h remove installable command
  7104.            DS:SI -> CR-terminated command name
  7105.         02h reserved, may be used to test for CED installation
  7106. Return: CF clear if successful
  7107.     CF set on error
  7108.         AX = 01h invalid function
  7109.          02h command not found (subfunction 01h only)
  7110.          08h insufficient memory (subfunction 00h only)
  7111.          0Eh bad data (subfunction 00h only)
  7112.     AH = FFh if CED not installed
  7113. Program: CED is a shareware DOS command-line enhancer by Christopher J. Dunford
  7114. SeeAlso: AX=0A00h
  7115. --------E-21FF-------------------------------
  7116. INT 21 - DJ GO32.EXE 80386+ DOS extender - DOS EXTENSIONS
  7117.     AH = FFh
  7118.     AL = function
  7119.         01h create file
  7120.         02h open file
  7121.         03h get file statistics
  7122.         04h get time of day
  7123.         05h set time of day
  7124.         06h stat
  7125.         07h system
  7126. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  7127.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  7128. SeeAlso: INT 10/AH=FFh"GO32"
  7129. --------K-21FF-------------------------------
  7130. INT 21 - DOSED.COM - INSTALLATION CHECK
  7131.     AH = FFh
  7132.     DS:SI -> "DOSED"
  7133.     ES = 0000h
  7134. Return: ES:DI -> "DOSED" if installed
  7135. Program: DOSED is a free DOS commandline editor/history buffer by Sverre H.
  7136.       Huseby
  7137. --------v-21FF-------------------------------
  7138. INT 21 - VIRUS - "Sunday", "Tumen 0.5", "Hero" - INSTALLATION CHECK
  7139.     AH = FFh
  7140. Return: AH = 00h if "Tumen 0.5" or "Hero" resident
  7141.     AX = 0400h if "Sunday" resident
  7142. SeeAlso: AX=FEDCh"VIRUS",AX=FF0Fh
  7143. --------E-21FF-------------------------------
  7144. INT 21 UP - Rational Systems DOS/4GW - API
  7145.     AH = FFh
  7146.     DH = function (00h-17h) (see also separate entries below)
  7147.     DL = subfunction or argument
  7148. Return: CF clear if valid function number
  7149.         AX = status???
  7150.     CF set if invalid function
  7151. SeeAlso: INT 15/AX=BFDCh
  7152. --------E-21FF--DH02-------------------------
  7153. INT 21 UP - Rational Systems DOS/4GW - SET ???
  7154.     AH = FFh
  7155.     DH = 02h
  7156.     DL = ???
  7157. Return: CF clear
  7158. --------E-21FF--DH05-------------------------
  7159. INT 21 UP - Rational Systems DOS/4GW - ???
  7160.     AH = FFh
  7161.     DH = 05h
  7162.     BX = ???
  7163. Return: ???
  7164. --------E-21FF--DH06-------------------------
  7165. INT 21 UP - Rational Systems DOS/4GW - ???
  7166.     AH = FFh
  7167.     DH = 06h
  7168.     BX = ???
  7169. Return: ???
  7170. --------E-21FF--DH07-------------------------
  7171. INT 21 UP - Rational Systems DOS/4GW - ???
  7172.     AH = FFh
  7173.     DH = 07h
  7174.     BX = ???
  7175. Return: ???
  7176. --------E-21FF--DH08-------------------------
  7177. INT 21 UP - Rational Systems DOS/4GW - ???
  7178.     AH = FFh
  7179.     DH = 08h
  7180.     BX = ???
  7181.     CX = ???
  7182.     ES = ???
  7183. Return: ???
  7184. --------E-21FF--DH09-------------------------
  7185. INT 21 UP - Rational Systems DOS/4GW - GET ???
  7186.     AH = FFh
  7187.     DH = 09h
  7188. Return: ES:BX -> ???
  7189. --------E-21FF--DH0A-------------------------
  7190. INT 21 UP - Rational Systems DOS/4GW - ???
  7191.     AH = FFh
  7192.     DH = 0Ah
  7193.     AL = ???
  7194.     BX = ???
  7195.     CX = ???
  7196. Return: ES = ??? or 0000h
  7197. --------E-21FF--DH0B-------------------------
  7198. INT 21 UP - Rational Systems DOS/4GW - ???
  7199.     AH = FFh
  7200.     DH = 0Bh
  7201.     AL = ???
  7202.     BX = ???
  7203.     CX = ???
  7204. Return: ???
  7205. --------E-21FF--DH0C-------------------------
  7206. INT 21 UP - Rational Systems DOS/4GW - GET/SET ???
  7207.     AH = FFh
  7208.     DH = 0Ch
  7209.     DL = ??? (00h or 01h)
  7210. Return: CF clear if successful
  7211.         AL = previous value of ???
  7212.     CF set on error (DL out of range)
  7213.         AX = FFFFh
  7214. --------E-21FF--DH0D-------------------------
  7215. INT 21 UP - Rational Systems DOS/4GW - ???
  7216.     AH = FFh
  7217.     DH = 0Dh
  7218.     ???
  7219. Return: ???
  7220. --------E-21FF--DH0E-------------------------
  7221. INT 21 UP - Rational Systems DOS/4GW - ???
  7222.     AH = FFh
  7223.     DH = 0Eh
  7224. Return: DX:AX -> XBRK structure (see INT 15/AX=BF02h)
  7225.     BX = ???
  7226.     CX = ???
  7227. SeeAlso: INT 15/AX=BF02h
  7228. --------E-21FF--DH0F-------------------------
  7229. INT 21 UP - Rational Systems DOS/4GW - ???
  7230.     AH = FFh
  7231.     DH = 0Fh
  7232.     ???
  7233. Return: ???
  7234. --------E-21FF--DH10-------------------------
  7235. INT 21 UP - Rational Systems DOS/4GW - ???
  7236.     AH = FFh
  7237.     DH = 10h
  7238.     AL = ???
  7239.     BX = ???
  7240.     CX = ???
  7241.     DI = ???
  7242.     SI = ???
  7243. Return: ???
  7244. Note:    among other things, frees two memory blocks via INT 21/AH=49h
  7245. --------E-21FF--DH11-------------------------
  7246. INT 21 UP - Rational Systems DOS/4GW - NOP
  7247.     AH = FFh
  7248.     DH = 11h
  7249. --------E-21FF--DH12-------------------------
  7250. INT 21 UP - Rational Systems DOS/4GW - EXCHANGE ??? POINTERS
  7251.     AH = FFh
  7252.     DH = 12h
  7253.     DS:SI -> new ???
  7254.     ES:DI -> new ???
  7255. Return: DS:SI -> previous ???
  7256.     ES:DI -> previous ???
  7257. --------E-21FF--DH13-------------------------
  7258. INT 21 UP - Rational Systems DOS/4GW - ???
  7259.     AH = FFh
  7260.     DH = 13h
  7261.     AL = ???
  7262.     ES = ???
  7263. Return: ???
  7264. --------E-21FF--DH14-------------------------
  7265. INT 21 UP - Rational Systems DOS/4GW - ???
  7266.     AH = FFh
  7267.     DH = 14h
  7268.     BX = ???
  7269.     CX = ???
  7270. Return: CF clear
  7271.         AX = ???
  7272.         DX = ???
  7273. --------E-21FF--DH15-------------------------
  7274. INT 21 UP - Rational Systems DOS/4GW - GET ??? FUNCTIONS
  7275.     AH = FFh
  7276.     DH = 15h
  7277. Return: CF clear
  7278.         DX:AX -> FAR function for ???
  7279.         CX:BX -> FAR function for ???
  7280.         SI:DI -> FAR function for ???
  7281. --------E-21FF--DH16-------------------------
  7282. INT 21 UP - Rational Systems DOS/4GW - GET ???
  7283.     AH = FFh
  7284.     DH = 16h
  7285. Return: AX = ???
  7286. --------E-21FF--DH17-------------------------
  7287. INT 21 UP - Rational Systems DOS/4GW - ???
  7288.     AH = FFH
  7289.     DH = 17h
  7290.     AL = ???
  7291.     DL = ???
  7292. Return: ???
  7293. --------N-21FF00-----------------------------
  7294. INT 21 - TopWare Network OS v5.10+ - GET SYSTEM INFORMATION
  7295.     AX = FF00h
  7296.     CL = what to get
  7297.         00h user information
  7298.         01h drive mapping
  7299.         02h printer server(s)
  7300.         05h local DOS drive number
  7301. Return: ES:BX -> desired information (see below)
  7302. Program: TopWare Network Operating System is manufactured by Grand Computer
  7303.       Company
  7304. Note:    this call is only supported on Workstations, not on the server
  7305. SeeAlso: AX=FF04h,INT 2F/AX=FF00h
  7306.  
  7307. Format of user information:
  7308. Offset    Size    Description
  7309.  00h    BYTE    node ID
  7310.  01h 15 BYTEs    user name
  7311.  10h    WORD    user number
  7312.  12h    BYTE    group number
  7313.  
  7314. Format of drive mapping [array]:
  7315. Offset    Size    Description
  7316.  00h    BYTE    bits 6-0: drive number (1=A:, etc.)
  7317.         bit 7: this is a server drive
  7318.  01h  3 BYTEs    mapping drive (for example, "C:\")
  7319.  04h 64 BYTEs    current directory
  7320. --------E-21FF00DX0078-----------------------
  7321. INT 21 - Rational Systems DOS/4G - INSTALLATION CHECK
  7322.     AX = FF00h
  7323.     DX = 0078h
  7324. Return: AL <> 00h if installed
  7325.         GS = segment of kernel if nonzero
  7326. SeeAlso: INT 15/AX=BF02h
  7327. --------N-21FF04-----------------------------
  7328. INT 21 - TopWare Network OS v5.10+ - GET/SET DEFAULT FILE PROTECTION ATTRIBS
  7329.     AX = FF04h
  7330.     CL = function
  7331.         00h get protections
  7332.         Return: BH = read attribute
  7333.             BL = write attribute
  7334.         01h set protections
  7335.         BH = read attribute
  7336.         BL = write attribute
  7337. Note:    this function is supported only on Workstations, not on the server
  7338. SeeAlso: AX=FF00h"TopWare"
  7339. --------v-21FF0F-----------------------------
  7340. INT 21 - FLU_SHOT+ v1.83 - INSTALLATION CHECK
  7341.     AX = FF0Fh
  7342. Return: AX = 0101h if resident
  7343. Program: FLU_SHOT+ is an antivirus/antitrojan program by Ross M. Greenberg and
  7344.       Software Concepts Design
  7345. Note:    the "PSQR/1720" virus calls this function to determine whether
  7346.       FLU_SHOT+ is present
  7347. SeeAlso: AH=FFh"VIRUS",AX=FF10h
  7348. --------v-21FF10-----------------------------
  7349. INT 21 - VIRUS - "Twins" - INSTALLATION CHECK
  7350.     AX = FF10h
  7351. Return: AL = 07h if resident
  7352. SeeAlso: AX=FF0Fh,AX=FFFEh
  7353. --------N-21FF80DHFF-------------------------
  7354. INT 21 - TopWare Network OS v5.10+ - SEND MESSAGE
  7355.     AX = FF80h
  7356.     DH = FFh
  7357.     DL = destination address (FFh for broadcast)
  7358.     CX = message length (max 2000)
  7359.     DS:SI -> message to be sent (see below)
  7360. Return: nothing
  7361. Program: TopWare Network Operating System is manufactured by Grand Computer
  7362.       Company
  7363. Notes:    this function is supported on both Workstations and the server
  7364.     there is no guarantee that the message will be received correctly, or
  7365.       at all, by the destination
  7366.  
  7367. Format of message:
  7368. Offset    Size    Description
  7369.  00h    BYTE    type code
  7370.         07h TopSend
  7371.         11h user application
  7372.         other reserved for TopWare
  7373.  01h    var    data
  7374. Note:    sending messages with a type code other than 11h will cause
  7375.       unpredictable results
  7376. --------N-21FF82-----------------------------
  7377. INT 21 - TopWare Network OS v5.10+ - GET STATION ADDRESS
  7378.     AX = FF82h
  7379. Return: AL = station address
  7380. Note:    this function is supported on both Workstations and the server
  7381. SeeAlso: AX=FF91h
  7382. --------N-21FF8C-----------------------------
  7383. INT 21 - TopWare Network OS v5.10+ - GET STATUS OF TopShow/Emulated FUNCTION
  7384.     AX = FF8Ch
  7385.     BL = subfunction
  7386.         00h get TopShow status
  7387.         FFh get Emulated status
  7388. Return: AL = status
  7389.         00h not installed
  7390.         01h already installed
  7391. --------N-21FF8D-----------------------------
  7392. INT 21 - TopWare Network OS v5.10+ - CALL TopShow FUNCTION
  7393.     AX = FF8Dh
  7394.     CH = monochrome flag (01h monochrome, 00h not monochrome)
  7395.     CL = screen mode of station to be viewed (see below)
  7396.     BL = graphic page number for monochrome
  7397. Return: AL = status (00h successful, else failed)
  7398. SeeAlso: AX=FF8Eh,AX=FFCFh
  7399.  
  7400. Values for screen mode:
  7401.  00h    text mode
  7402.  01h    720x348
  7403.  02h    640x408
  7404.  03h    720x352
  7405.  04h    640x390
  7406.  05h    reserved
  7407. --------N-21FF8E-----------------------------
  7408. INT 21 - TopWare Network OS v5.10+ - CANCEL TopShow FUNCTION
  7409.     AX = FF8Eh
  7410. Return: AL = 00h (successful, TopShow removed)
  7411. SeeAlso: AX=FF8Dh
  7412. --------N-21FF91-----------------------------
  7413. INT 21 - TopWare Network OS v5.10+ - GET FILE SERVER STATION NUMBER
  7414.     AX = FF91h
  7415. Return: AL = station number of file server
  7416. SeeAlso: AX=FF82h
  7417. --------N-21FF97-----------------------------
  7418. INT 21 - TopWare Network OS v5.10+ - GET MAXIMUM STATION NUMBER (server only)
  7419.     AX = FF97h
  7420. Return: AL = maximum station number
  7421. SeeAlso: AX=FF98h
  7422. --------N-21FF98-----------------------------
  7423. INT 21 - TopWare Network OS v5.10+ - GET MAXIMUM FILE NUMBER (server only)
  7424.     AX = FF98h
  7425. Return: AL = maximum file
  7426. SeeAlso: AX=FF97h
  7427. --------N-21FF9A-----------------------------
  7428. INT 21 - TopWare Network OS v5.10+ - RECEIVE OF USER-DEFINED PACKETS
  7429.     AX = FF9Ah
  7430.     ES:BX -> buffer for user-defined packet (see below)
  7431. Return: nothing
  7432.  
  7433. Format of user-defined packet:
  7434. Offset    Size    Description
  7435.  00h    BYTE    FFh
  7436.  01h    WORD    (call) length of data field plus 3
  7437.         (return) length of received message (0000h if none received)
  7438.  03h    BYTE    destination ID (FFh for broadcast message)
  7439.  04h    BYTE    sending station ID
  7440.  05h    BYTE    type code (11h; all other codes reserved for TopWare)
  7441.  06h  N BYTEs    received message
  7442. --------N-21FF9F-----------------------------
  7443. INT 21 - TopWare Network OS v5.10+ - ENABLE/DISABLE TopTerm SERVICE
  7444.     AX = FF9Fh
  7445.     CL = new state (00h disable [disregard TopTerm packets], 01h enable)
  7446. Return: AL = status (00h successful, FFh failed)
  7447. Note:    this function is only supported by Workstations, not the server
  7448. --------N-21FFB0-----------------------------
  7449. INT 21 - TopWare Network OS v5.10+ - GET SPOOLER PRINTING PRIORITY
  7450.     AX = FFB0h
  7451. Return: AL = priority status (see below)
  7452. SeeAlso: AX=FFB1h
  7453.  
  7454. Bitfields for printer priority status:
  7455.  bit 0    LPT1 has high priority
  7456.  bit 1    LPT2 has high priority
  7457.  bit 2    LPT3 has high priority
  7458. --------N-21FFB1-----------------------------
  7459. INT 21 - TopWare Network OS v5.10+ - SET SPOOLER PRINTING PRIORITY
  7460.     AX = FFB1h
  7461.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7462.     CH = new priority (00h normal, 01h high)
  7463. Return: nothing
  7464. SeeAlso: AX=FFB0h
  7465. --------N-21FFB3-----------------------------
  7466. INT 21 - TopWare Network OS v5.10+ - GET DEFAULT START-OF-JOB FORMFEED STATUS
  7467.     AX = FFB3h
  7468. Return: AL = starting formfeed status (see below)
  7469. SeeAlso: AX=FFB4h,AX=FFC0h
  7470.  
  7471. Bitfields for printer start-of-job formfeed status:
  7472.  bit 0    LPT1 has formfeed enabled
  7473.  bit 1    LPT2 has formfeed enabled
  7474.  bit 2    LPT3 has formfeed enabled
  7475. --------N-21FFB4-----------------------------
  7476. INT 21 - TopWare Network OS v5.10+ - SET DEFAULT START-OF-JOB FORMFEED STATUS
  7477.     AX = FFB4h
  7478.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7479.     CH = new formfeed status (00h off, 01h on)
  7480. Return: nothing
  7481. SeeAlso: AX=FFB3h,AX=FFC1h
  7482. --------N-21FFBB-----------------------------
  7483. INT 21 - TopWare Network OS v5.10+ - GET PRINTER SERVER STATION ADDRESS
  7484.     AX = FFBBh
  7485.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7486. Return: AL = current mapping printer server station number
  7487.         00h if local
  7488. SeeAlso: AX=FFBCh
  7489. --------N-21FFBC-----------------------------
  7490. INT 21 - TopWare Network OS v5.10+ - CANCEL TopShow FUNCTION
  7491.     AX = FFBCh
  7492.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7493.     CL = printer server station address or 00h for local printer
  7494. Return: AL = status (00h successful, else failed)
  7495. SeeAlso: AX=FFBBh
  7496. --------N-21FFBD-----------------------------
  7497. INT 21 - TopWare Network OS v5.10+ - GET CURRENT AUTOPRINT TIME
  7498.     AX = FFBDh
  7499.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7500. Return: AX = current AutoPrint timeout in clock ticks
  7501. SeeAlso: AX=FFBEh
  7502. --------N-21FFBE-----------------------------
  7503. INT 21 - TopWare Network OS v5.10+ - SET AUTOPRINT TIME
  7504.     AX = FFBEh
  7505.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7506.     BX = timeout in clock ticks
  7507. SeeAlso: AX=FFBDh
  7508. --------N-21FFBF-----------------------------
  7509. INT 21 - TopWare Network OS v5.10+ - GET LOGON USER INFORMATION
  7510.     AX = FFBFh
  7511.     DX:BX -> buffer for logon information (see below)
  7512. Return: AL = status (00h successful, else failed)
  7513.     AH = number of logged-in stations
  7514.  
  7515. Format of logon information:
  7516. Offset    Size    Description
  7517.  00h    BYTE    station address
  7518.  01h 15 BYTEs    username
  7519. --------N-21FFC0-----------------------------
  7520. INT 21 - TopWare Network OS v5.10+ - GET DEFAULT END-OF-JOB FORMFEED STATUS
  7521.     AX = FFC0h
  7522. Return: AL = ending formfeed status (see below)
  7523. SeeAlso: AX=FFB3h,AX=FFC1h
  7524.  
  7525. Bitfields for printer end-of-job formfeed status:
  7526.  bit 0    LPT1 has formfeed enabled
  7527.  bit 1    LPT2 has formfeed enabled
  7528.  bit 2    LPT3 has formfeed enabled
  7529. --------N-21FFC1-----------------------------
  7530. INT 21 - TopWare Network OS v5.10+ - SET DEFAULT END-OF-JOB FORMFEED STATUS
  7531.     AX = FFC1h
  7532.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7533.     CH = new formfeed status (00h off, 01h on)
  7534. Return: nothing
  7535. SeeAlso: AX=FFB4h,AX=FFC0h
  7536. --------N-21FFC2-----------------------------
  7537. INT 21 - TopWare Network OS v5.10+ - GET DEFAULT COPIES OF SPOOLING FILE
  7538.     AX = FFC2h
  7539.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7540. Return: AL = default number of copies printed
  7541. SeeAlso: AX=FFC7h
  7542. --------N-21FFC3-----------------------------
  7543. INT 21 - TopWare Network OS v5.10+ - GET SHARING STATUS OF PRINTER SERVER
  7544.     AX = FFC3h
  7545. Return: AL = sharing status of printers (see below)
  7546.         FFh if not a printer server
  7547.  
  7548. Bitfields for printer sharing status:
  7549.  bit 0    LPT1 is shared
  7550.  bit 1    LPT2 is shared
  7551.  bit 2    LPT3 is shared
  7552. --------N-21FFC4-----------------------------
  7553. INT 21 - TopWare Network OS v5.10+ - GET/SET LPT PORT ON PRINT SERVER
  7554.     AX = FFC4h
  7555.     BL = subfunction
  7556.         00h get
  7557.         Return: AL = mapped printer port on print server
  7558.         01h set
  7559.         CL = network printer port (00h LPT1, 01h LPT2, 02h LPT3)
  7560.     CH = local printer (00h LPT1, 01h LPT2, 02h LPT3)
  7561. --------N-21FFC6-----------------------------
  7562. INT 21 - TopWare Network OS v5.10+ - SET DEFAULT PRINT FILE HEADER
  7563.     AX = FFC6h
  7564.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7565.     CL = header state (00h off, 01h on)
  7566. SeeAlso: AX=FFC8h
  7567. --------N-21FFC7-----------------------------
  7568. INT 21 - TopWare Network OS v5.10+ - SET DEFAULT PRINT COPIES
  7569.     AX = FFC7h
  7570.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7571.     CL = new default number of copies to print
  7572. SeeAlso: AX=FFC2h
  7573. --------N-21FFC8-----------------------------
  7574. INT 21 - TopWare Network OS v5.10+ - GET DEFAULT PRINT FILE HEADER STATUS
  7575.     AX = FFC8h
  7576. Return: AL = header status for printers (see below)
  7577. SeeAlso: AX=FFC6h
  7578.  
  7579. Bitfields for print header status:
  7580.  bit 0    LPT1 has headers enabled
  7581.  bit 1    LPT2 has headers enabled
  7582.  bit 2    LPT3 has headers enabled
  7583. --------N-21FFC9-----------------------------
  7584. INT 21 - TopWare Network OS v5.10+ - SET PRINTER SHARING
  7585.     AX = FFC9h
  7586.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7587.     CL = new sharing state (00h off, 01h on)
  7588. Return: AL = status (00h successful, FFh not printer server)
  7589. --------N-21FFCA-----------------------------
  7590. INT 21 - TopWare Network OS v5.10+ - MOVE FILE FROM ONE PRINT SERVER TO ANOTHER
  7591.     AX = FFCAh
  7592.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7593.     CL = original printer server station address
  7594.     BL = target printer server station address
  7595.     DS:DX -> filename (12 bytes)
  7596. Return: AL = status (00h successful, else failed)
  7597. SeeAlso: AX=FFCBh
  7598. --------N-21FFCB-----------------------------
  7599. INT 21 - TopWare Network OS v5.10+ - DELETE FILE FROM SPOOLING QUEUE
  7600.     AX = FFCBh
  7601.     CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  7602.     CL = printer server station address
  7603.     DS:DX -> filename (12 bytes)
  7604. Return: AL = status (00h successful, else failed)
  7605. SeeAlso: AX=FFCAh
  7606. --------N-21FFCC-----------------------------
  7607. INT 21 - TopWare Network OS v5.10+ - GET PRINT SERVER'S SPOOLING QUEUE STATUS
  7608.     AX = FFCCh
  7609.     CL = printer server station address
  7610.     BH = start item number of spooling file for print server
  7611.     BL = number of the item to be retrieved
  7612.     DS:DX -> buffer for queued file information (see below)
  7613. Return: AL = status
  7614.         00h successful
  7615.         AH = number of spool files
  7616.         DS:DX buffer filled
  7617.         nonzero failed
  7618.  
  7619. Format of queued file information buffer [16-item array, one element]:
  7620. Offset    Size    Description
  7621.  00h 12 BYTEs    filename
  7622.  0Ch    DWORD    size
  7623.  10h    WORD    date
  7624.  12h    WORD    time
  7625.  14h 15 BYTEs    username
  7626.  23h    BYTE    count
  7627.  24h    BYTE    flag: header
  7628.  25h    BYTE    print number
  7629. --------N-21FFCD-----------------------------
  7630. INT 21 - TopWare Network OS v5.10+ - GET STATUS OF ALL PRINT SERVERS
  7631.     AX = FFCDh
  7632.     DS:DX -> buffer for server status (see below)
  7633. Return: AL = status
  7634.         00h successful
  7635.         AH = number of print servers
  7636.         nonzero failed
  7637.  
  7638. Format of server status:
  7639. Offset    Size    Description
  7640.  00h    BYTE    station address
  7641.  01h 15 BYTEs    username
  7642.  10h    BYTE    flag: 01h printer is shared, 00h sharing disabled
  7643.  11h    BYTE    number of files pending in queue
  7644. --------N-21FFCF-----------------------------
  7645. INT 21 - TopWare Network OS v5.10+ - CALL TopLook FUNCTION
  7646.     AX = FFCFh
  7647.     DH = page number (0-2, 2 is text mode)
  7648.     DL = type
  7649.         00h look at specific screen
  7650.         01h AutoLook on
  7651.         FFh AutoLook off
  7652.     BH = station number wishing to look
  7653.     BL = station number to be looked at
  7654.     CH = monochrome flag (01h monochrome, 00h not monochrome)
  7655.     CL = screen mode (see AX=FF8Dh)
  7656. Return: AL = status (00h successful, nonzero failed)
  7657. SeeAlso: AX=FF8Dh
  7658. --------N-21FFD6-----------------------------
  7659. INT 21 - TopWare Network OS v5.10+ - GET KEYCARD SERIAL NUMBER AND MAX USERS
  7660.     AX = FFD6h
  7661.     ES:BX -> 12-byte buffer for keycard serial number
  7662. Return: CX = maximum number of users
  7663.     ES:BX buffer filled
  7664. --------N-21FFD7-----------------------------
  7665. INT 21 - TopWare Network OS v5.10+ - GET NETWORK PROTECTION ATTRIBUTES STATUS
  7666.     AX = FFD7h
  7667. Return: AL = status (00h disabled, 01h enabled)
  7668. --------N-21FFE3DL00-------------------------
  7669. INT 21 - TopWare Network OS v5.10+ - INITIATE ACCESS TO SPECIFIC PACKET TYPE
  7670.     AX = FFE3h
  7671.     DL = 00h
  7672.     BX = packet type for Ethernet header (IP = 0800h, ARP = 0806h, etc.)
  7673.     ES:DI -> receive routine (see below)
  7674. Return: CF clear if successful
  7675.         AX = handle number
  7676.     CF set on error
  7677.         DH = error code (03h,05h,09h,0Ah,11h) (see below)
  7678. SeeAlso: AX=FFE3h/DL=01h
  7679.  
  7680. Values for error code:
  7681.  01h    invalid handle
  7682.  03h    no interfaces of the specified type found
  7683.  05h    bad packet type
  7684.  09h    insufficient space
  7685.  0Ah    type already being accessed
  7686.  0Ch    unable to send packet (usually hardware error)
  7687.  11h    invalid function
  7688.  
  7689. Receive routine is called with:
  7690.     AX = function
  7691.         0000h request packet buffer
  7692.         CX = packet size
  7693.         Return: ES:DI -> buffer or 0000h:0000h to discard packet
  7694.         0001h packet copied
  7695.         CX = packet size
  7696.         DS:SI -> copied packet (same as returned ES:DI above)
  7697. --------N-21FFE3DL01-------------------------
  7698. INT 21 - TopWare Network OS v5.10+ - END ACCESS TO SPECIFIC PACKET TYPE
  7699.     AX = FFE3h
  7700.     DL = 01h
  7701.     BX = handle returned by AX=FFE3h/DL=00h
  7702. Return: CF clear if successful
  7703.     CF set on error
  7704.         DH = error code (01h,11h) (see AX=FFE3h/DL=00h)
  7705. Note:    the specified access handle will no longer be valid after this call
  7706. SeeAlso: AX=FFE3h/DL=00h
  7707. --------N-21FFE3DL02-------------------------
  7708. INT 21 - TopWare Network OS v5.10+ - SEND PACKET
  7709.     AX = FFE3h
  7710.     DL = 02h
  7711.     CX = length of data buffer
  7712.     DS:SI -> buffer containing data
  7713. Return: CF clear if successful
  7714.     CF set on error
  7715.         DH = error code (0Ch,11h) (see AX=FFE3h/DL=00h)
  7716. --------N-21FFE3DL03-------------------------
  7717. INT 21 - TopWare Network OS v5.10+ - GET LOCAL NETWORK INTERFACE ADDRESS
  7718.     AX = FFE3h
  7719.     DL = 03h
  7720.     ES:DI -> 6-byte buffer for address
  7721. SeeAlso: AX=FFE3h/DL=00h
  7722. --------v-21FFFE-----------------------------
  7723. INT 21 - VIRUS - "08/15"/"Many Fingers" - INSTALLATION CHECK
  7724.     AX = FFFEh
  7725. Return: AX = 0815h if resident
  7726. SeeAlso: AX=FF10h,AX=FFFFh
  7727. --------v-21FFFF-----------------------------
  7728. INT 21 - VIRUS - "Ontario", "Year 1992"/"B1M92" - INSTALLATION CHECK
  7729.     AX = FFFFh
  7730. Return: AX = 0000h if "Ontario" resident
  7731.     AX = 1992h if "Year 1992"/"B1M92" resident
  7732. SeeAlso: AX=FF0Fh,AX=FFFFh/CX=0000h,INT 6B"VIRUS"
  7733. --------v-21FFFFCX0000-----------------------
  7734. INT 21 - VIRUS - "Revenge" - INSTALLATION CHECK
  7735.     AX = FFFFh
  7736.     CX = 0000h
  7737. Return: CX = 0006h if resident
  7738. SeeAlso: AX=FFFFh,INT 6B"VIRUS"
  7739. --------!------------------------------------
  7740.